Pytania otagowane jako type-inference

Wnioskowanie o typach to proces automatycznego wnioskowania o typach dla programów przy użyciu reguł zdefiniowanych przez system typów.

30
Użycie słowa kluczowego var w C #
Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych odpowiedzi ani interakcji. Po dyskusji z kolegami na temat użycia słowa kluczowego „var” w C # 3 zastanawiałem się, jakie są opinie ludzi na temat właściwego zastosowania wnioskowania …
406 c#  type-inference  var 

3
Collections.emptyList () zwraca List <Object>?
Mam problem z nawigacją w regule Javy w celu wnioskowania o ogólnych parametrach typu. Rozważ następującą klasę, która ma opcjonalny parametr listy: 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; …


14
Ile kosztuje zbyt wiele w przypadku automatycznego słowa kluczowego C ++ 11?
Używam nowego autosłowa kluczowego dostępnego w standardzie C ++ 11 do skomplikowanych typów szablonów, do czego, moim zdaniem, został zaprojektowany. Ale używam go również do takich rzeczy jak: auto foo = std::make_shared&lt;Foo&gt;(); I bardziej sceptycznie dla: auto foo = bla(); // where bla() return a shared_ptr&lt;Foo&gt; Nie widziałem wiele dyskusji …


5
Jak przekazać typ klasy jako parametr funkcji
Mam ogólną funkcję, która wywołuje usługę internetową i serializuje odpowiedź JSON z powrotem do obiektu. 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 */ } To, co próbuję osiągnąć, jest odpowiednikiem …


1
Jakie ograniczenia nakłada Scala na „dopuszczalną złożoność” wywnioskowanych typów?
Zgodnie ze specyfikacją języka Scala : ... wnioskowanie o typie lokalnym jest dozwolone w celu ograniczenia złożoności wywnioskowanych granic [parametrów typu]. Minimalność i maksymalność typów należy rozumieć w odniesieniu do zbioru typów o dopuszczalnej złożoności. W praktyce jakie są ograniczenia? Ponadto, czy istnieją inne ograniczenia, które mają zastosowanie do wywnioskowanych …

8
Jak wiarygodnie określić typ zmiennej zadeklarowanej przy użyciu zmiennej w czasie projektowania?
Pracuję nad narzędziem uzupełniania (Intellisense) dla języka C # w emacsie. Chodzi o to, że jeśli użytkownik wpisze fragment, a następnie poprosi o uzupełnienie za pomocą określonej kombinacji naciśnięć klawiszy, narzędzie uzupełniania użyje odbicia .NET do określenia możliwych uzupełnień. Aby to zrobić, trzeba znać rodzaj realizowanej rzeczy. Jeśli jest to …

1
Wywołanie statycznych metod ogólnych
Natknąłem się na ciekawą sytuację związaną ze statycznymi metodami ogólnymi. To jest kod: 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(); } } Dlaczego nie muszę określać żadnych argumentów typu w wyrażeniu Foo.createFoo()? …

5
implementacja wnioskowania o typie
Widzę tutaj kilka interesujących dyskusji na temat pisania statycznego i dynamicznego. Generalnie wolę wpisywanie statyczne, ze względu na sprawdzanie typów kompilacji, lepiej udokumentowany kod itp. Zgadzam się jednak, że zaśmiecają one kod, jeśli są robione tak, jak robi to na przykład Java. Więc zaraz zacznę budować własny funkcjonalny język stylów, …

3
Osobliwa funkcja wnioskowania o typie wyjątku w Javie 8
Pisząc kod dla innej odpowiedzi na tej stronie, natknąłem się na tę osobliwość: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static &lt;T extends Throwable&gt; void sneakyThrow(Throwable t) throws T { throw (T) t; } static &lt;T …

9
Nie można „znaleźćViewById” w Kotlinie. Pojawia się błąd „Wnioskowanie o typie nie powiodło się”
Gdy próbuję znaleźć RecycleViewidentyfikator według identyfikatora, pojawia się następujący błąd . Błąd: - wnioskowanie o typie nie powiodło się: za mało informacji, aby wywnioskować parametr T Kod: class FirstRecycleViewExample : AppCompatActivity() { val data = arrayListOf&lt;String&gt;() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.first_recycleview) val recycler_view = findViewById(R.id.recycler_view) as RecyclerView ///IN …

4
Dlaczego typ zwracanej wartości lambda nie jest sprawdzany podczas kompilacji?
Użyte odwołanie do metody ma typ zwracany Integer. Jednak niezgodność Stringjest dozwolona w poniższym przykładzie. Jak naprawić withdeklarację metody, aby uzyskać bezpieczny typ referencyjny metody bez ręcznego rzutowania? 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 = clazz; } static …

6
Dlaczego Java nie może wywnioskować nadtypu?
Wszyscy wiemy, że Long rozciąga się Number. Dlaczego więc się nie kompiluje? Jak zdefiniować metodę, withaby program kompilował się bez ręcznego rzutowania? 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) { …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.