Запитання з тегом «type-inference»

Виведення типу - це процес автоматичного виведення типів для програм, використовуючи правила, визначені системою типів.

30
Використання var ключового слова в C #
Заблокований . Це запитання та його відповіді заблоковано, оскільки це питання поза темою, але має історичне значення. Наразі не приймає нових відповідей чи взаємодій. Після обговорення з колегами щодо використання ключового слова "var" у C # 3 я задумався, які думки людей щодо відповідного використання виводу типу через var? Наприклад, …
406 c#  type-inference  var 

3
Collections.emptyList () повертає список <Object>?
У мене виникають проблеми з навігацією правила Java для виведення параметрів загального типу. Розглянемо наступний клас, у якого є необов'язковий параметр списку: 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
Скільки коштує занадто багато ключових слів C ++ 11?
Я використовую нове autoключове слово, доступне в стандарті C ++ 11, для складних шаблонових типів, для чого я вважаю, що він був розроблений. Але я також використовую його для таких речей, як: auto foo = std::make_shared&lt;Foo&gt;(); І більш скептично: auto foo = bla(); // where bla() return a shared_ptr&lt;Foo&gt; Я …

22
Чому час компіляції Swift так повільний?
Я використовую Xcode 6 Beta 6. Це те, що клопоче мене вже деякий час, але це доходить до того моменту, коли він зараз ледве придатний. Мій проект починає мати пристойний розмір 65 файлів Swift та декілька мостових файлів Objective-C (що насправді не є причиною проблеми). Здається, що будь-яка незначна зміна …

5
Як передавати тип класу як параметр функції
У мене є загальна функція, яка викликає веб-службу і серіалізує відповідь JSON на об'єкт. 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 */ } Що я намагаюся досягти, це еквівалент цього …

14
Чи є недолік у оголошенні змінних з авто в C ++?
Здається, що autoв C ++ 11 було додано досить значну особливість, яка, здається, відповідає багатьом новим мовам. Як і в такій мові, як Python, я не бачив явної декларації змінної (я не впевнений, чи можливо це за допомогою стандартів Python). Чи є недолік використання autoоголошень змінних, а не явного їх …

1
Які межі визначає масштаб щодо "прийнятної складності" виведених типів?
Згідно зі специфікацією мови Scala : ... локальний тип висновку дозволений для обмеження складності виведених меж [параметрів типу]. Мінімальність і максимальність типів слід розуміти відносно набору типів прийнятної складності. На практиці які межі? Крім того, чи існують різні обмеження, які застосовуються до виведених типів виразів, ніж до меж типу параметрів, …

8
Як я можу надійно визначити тип змінної, яка оголошується за допомогою var під час проектування?
Я працюю над завершенням (intellisense) об'єктом для C # в emacs. Ідея полягає в тому, що якщо користувач вводить фрагмент, а потім просить завершити за допомогою певної комбінації натискань клавіш, програма завершення використовує відображення .NET для визначення можливих завершень. Для цього потрібно знати тип речі, що завершується, бути відомим. Якщо …

1
Викликання статичних родових методів
Я зіткнувся з цікавою ситуацією, пов’язаною зі статичними загальними методами. Це код: 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(); } } Чому я не повинен вказувати аргументи типу у виразі Foo.createFoo()? Це …

5
реалізація умовиводу типу
Я бачу тут кілька цікавих дискусій щодо статичного та динамічного набору тексту. Я, як правило, віддаю перевагу статичному набору тексту, завдяки перевірці типу компіляції, кращому документованому коду і т. Д. Однак я погоджуюсь, що вони дійсно захаращують код, якщо це робиться так, як це робить Java, наприклад. Тож я збираюся …

3
Своєрідна особливість умовиводу щодо винятків у Java 8
Під час написання коду для іншої відповіді на цьому сайті я натрапив на цю особливість: 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; } …

4
Чому цей код Haskell видає помилку "нескінченний тип"?
Я новачок у Haskell і стикаюся з помилкою "неможливо побудувати нескінченний тип", яку я не можу зрозуміти. Насправді, крім цього, я не зміг знайти хорошого пояснення того, що ця помилка навіть означає, тому, якщо ви могли б вийти за рамки мого основного запитання та пояснити помилку "нескінченний тип", я б …

9
Не вдається “findViewById” у Котліні. Отримання помилки "Помилка виведення типу"
Я отримую таку помилку, коли намагаюся знайти RecycleViewідентифікатор. Помилка: - Помилка виведення типу: Недостатньо інформації для виведення параметра T Код: 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 THIS LINE I AM GETTING THE ERROR …

1
Що таке обмеження мономорфізму?
Мене бентежить те, як компілятор haskell іноді вигадує типи, які є менш поліморфними, ніж те, що я очікував, наприклад при використанні безточкових визначень. Здається, проблема полягає в "обмеженні мономорфізму", яке за замовчуванням увімкнено у старих версіях компілятора. Розглянемо наступну програму haskell: {-# LANGUAGE MonomorphismRestriction #-} import Data.List(sortBy) plus = (+) …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.