Pertanyaan yang diberi tag «type-inference»

Jenis inferensi adalah proses menyimpulkan jenis untuk program secara otomatis, menggunakan aturan yang ditentukan oleh sistem jenis.

30
Penggunaan kata kunci var di C #
Terkunci . Pertanyaan ini dan jawabannya dikunci karena pertanyaannya di luar topik tetapi memiliki signifikansi historis. Saat ini tidak menerima jawaban atau interaksi baru. Setelah berdiskusi dengan kolega mengenai penggunaan kata kunci 'var' di C # 3, saya bertanya-tanya pendapat orang apa tentang penggunaan inferensi tipe yang tepat melalui var? …
406 c#  type-inference  var 

3
Collections.emptyList () mengembalikan Daftar <Object>?
Saya mengalami beberapa masalah dalam menavigasi aturan Java untuk menyimpulkan parameter tipe generik. Pertimbangkan kelas berikut, yang memiliki parameter daftar opsional: import java.util.Collections; import java.util.List; public class Person { private String name; private List&lt;String&gt; nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List&lt;String&gt; nicknames) { this.name = name; this.nicknames …




5
Cara meneruskan tipe kelas sebagai parameter fungsi
Saya memiliki fungsi generik yang memanggil layanan web dan membuat serialisasi respons JSON kembali ke objek. class func invokeService&lt;T&gt;(service: String, withParams params: Dictionary&lt;String, String&gt;, returningClass: AnyClass, completionHandler handler: ((T) -&gt; ())) { /* Construct the URL, call the service and parse the response */ } Apa yang saya coba capai …

14
Apakah ada kerugian untuk mendeklarasikan variabel dengan otomatis di C ++?
Tampaknya itu autoadalah fitur yang cukup signifikan untuk ditambahkan dalam C ++ 11 yang tampaknya mengikuti banyak bahasa yang lebih baru. Seperti bahasa seperti Python, saya belum melihat adanya deklarasi variabel eksplisit (saya tidak yakin apakah mungkin menggunakan standar Python). Apakah ada kelemahan menggunakan autountuk mendeklarasikan variabel daripada secara eksplisit …

1
Batasan apa yang ditempatkan skala pada "kompleksitas yang dapat diterima" dari tipe-tipe yang disimpulkan?
Menurut Spesifikasi Bahasa Scala : ... inferensi tipe lokal diizinkan untuk membatasi kompleksitas batas yang disimpulkan [parameter tipe]. Minimitas dan maksimalitas jenis harus dipahami relatif terhadap himpunan jenis kompleksitas yang dapat diterima. Dalam praktiknya apa saja batasannya? Selain itu, apakah ada batas berbeda yang berlaku untuk jenis ekspresi yang disimpulkan …

8
Bagaimana saya bisa dengan andal menentukan jenis variabel yang dideklarasikan menggunakan var pada waktu desain?
Saya sedang mengerjakan fasilitas penyelesaian (intellisense) untuk C # di emacs. Idenya adalah, jika pengguna mengetikkan sebuah fragmen, kemudian meminta penyelesaian melalui kombinasi penekanan tombol tertentu, fasilitas penyelesaian akan menggunakan refleksi .NET untuk menentukan penyelesaian yang mungkin. Melakukan ini mengharuskan jenis hal yang diselesaikan, diketahui. Jika itu sebuah string, ada …

1
Memanggil metode generik statis
Saya telah menjumpai situasi aneh yang melibatkan metode generik statis. Ini kodenya: class Foo&lt;E&gt; { public static &lt;E&gt; Foo&lt;E&gt; createFoo() { // ... } } class Bar&lt;E&gt; { private Foo&lt;E&gt; member; public Bar() { member = Foo.createFoo(); } } Kenapa saya tidak harus menentukan argumen tipe apa pun dalam ekspresi …


4
Mengapa tipe pengembalian lambda tidak dicentang pada waktu kompilasi?
Referensi metode yang digunakan memiliki tipe kembali Integer. Tapi tidak cocokString diizinkan dalam contoh berikut. Bagaimana cara memperbaiki withdeklarasi metode untuk mendapatkan tipe referensi metode yang aman tanpa casting secara manual? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { final Class&lt;T&gt; clazz; Builder(Class&lt;T&gt; clazz) { this.clazz = …

6
Mengapa Java tidak dapat menyimpulkan supertipe?
Kita semua tahu Long memanjang Number. Jadi mengapa ini tidak dikompilasi? Dan bagaimana mendefinisikan metode withsehingga program dapat dikompilasi tanpa ada panduan manual? import java.util.function.Function; public class Builder&lt;T&gt; { static public interface MyInterface { Number getNumber(); Long getLong(); } public &lt;F extends Function&lt;T, R&gt;, R&gt; Builder&lt;T&gt; with(F getter, R returnValue) …

2
Mengapa `std :: mem :: drop` tidak persis sama dengan penutupan | _ | () dalam batas sifat peringkat lebih tinggi?
Implementasi std::mem::dropdidokumentasikan sebagai berikut: pub fn drop&lt;T&gt;(_x: T) { } Karena itu, saya berharap penutupan |_| ()(bahasa sehari-hari dikenal sebagai penutupan toilet ) menjadi pengganti 1: 1 potensial drop, di kedua arah. Namun, kode di bawah ini menunjukkan bahwa droptidak kompatibel dengan sifat peringkat lebih tinggi yang terikat pada parameter …

1
Mengapa tipe parameter lebih kuat daripada parameter metode
Kenapa public &lt;R, F extends Function&lt;T, R&gt;&gt; Builder&lt;T&gt; withX(F getter, R returnValue) {...} lebih ketat dari itu public &lt;R&gt; Builder&lt;T&gt; with(Function&lt;T, R&gt; getter, R returnValue) {...} Ini adalah tindak lanjut pada Mengapa jenis pengembalian lambda tidak diperiksa pada waktu kompilasi . Saya menemukan menggunakan metode withX()suka .withX(MyInterface::getLength, "I am not …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.