Описание тега static-typing

Говорят, что язык программирования использует статическую типизацию, когда проверка типа выполняется во время компиляции, а не во время выполнения.
5 ответов

Статическая / строгая типизация и рефакторинг

Мне кажется, что самая бесценная вещь в статическом / строго типизированном языке программирования заключается в том, что он помогает рефакторингу: если / когда вы меняете какой-либо API, то компилятор сообщит вам, что это изменение сломало. Я могу …
2 ответа

Статическая типизация языка сценариев в Java

Я создаю язык сценариев на Java для игры, и в настоящее время я работаю над анализатором. Игроки должны использовать этот язык для создания собственных заклинаний и эффектов. Однако мне трудно представить, как плавно реализовать статическую типизаци…
0 ответов

Уничтожение объектов как параметров функций с типами потока

Как деструктурировать параметры функции, сохраняя при этом аннотацию типа потока для новых (неструктурированных) значений? Пример: type Car = { model: string, maxSpeed: number } function processCar({ model, maxSpeed }: Car) { // model should be anot…
3 ответа

Каков тип возврата Flow функционального компонента React без состояния?

Если у меня есть что-то вроде этого const RandomComponent = (props) => ( <div> <SomeSubComponent id={props.id} /> <AnotherSubComponent type={props.type} /> </div> ) как я буду печатать, аннотировать возвращаемый тип с помо…
2 ответа

Функция, объявленная как Virtual в производном классе, не выполняется, вместо этого выдана ошибка компиляции. Почему?

Я понимаю виртуальную функцию и vTable, поэтому извините, если это тривиальный вопрос, чтобы задать.... Основываясь на концепции vTable и vPtr, объясненной людьми, я понял и ожидаю, что нижеприведенная программа должна работать, но она дает ошибку. …
1 ответ

Подпись типа Haskell с несколькими ограничениями класса

Как я могу иметь несколько ограничений класса, так что если A является Eq а также B это NumЯ мог бы сказать либо f :: Eq a => a -> b` или же f :: Num b => a -> b Итак, как я могу иметь Eq a => а также Num b => в то же время? f :: E…
19 июн '12 в 03:03
1 ответ

Как установить mypy-lang на python 2.7?

Новая версия должна поддерживать 2.7, но при установке pip происходит сбой с SyntaxError на строке с синтаксисом аннотации типов python 3 (что довольно иронично): Traceback (most recent call last): ... from mypy import git File "mypy/git.py", line 1…
20 фев '16 в 21:13
3 ответа

Python: Type Annotations, как определить элементы кортежа?

Вот минимальный случай. def foo(x:int, y:int) -> tuple: return (x*y, y//2) Очень заманчиво иметь возможность писать -> tuple(:int, :int) который не является допустимым форматом. Есть ли правильный подход в этом случае, или это все еще серая об…
30 янв '15 в 18:10
3 ответа

Вам известны примеры элегантных решений в динамически типизированных языках?

Представьте себе два языка, которые (помимо информации о типе) имеют абсолютно одинаковый синтаксис, но один статически типизирован, а другой использует динамическую типизацию. Затем для каждой программы, написанной на языке со статической типизацие…
23 июл '10 в 11:41
1 ответ

Тип последовательности замыкания

Какой правильный тип последовательности? У меня есть этот код: (defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds]) Но, похоже, он не обеспечивает должного соблюдения требований к типу, так как я могу написать (new Metho…
17 июл '11 в 23:25
3 ответа

Что означает "идентичность" в определении категорий значений в C++

Короче говоря, вы можете просто ответить на часть о личности, спасибо. Мой основной вопрос в этом вопросе - начать с 2. о личности, я просто попытался представить контекст / основу моего текущего понимания, чтобы он мог помочь вам определить глубину…
23 ноя '18 в 08:43
2 ответа

Почему фреймворки веб-разработки имеют тенденцию работать вокруг статических особенностей языков?

Когда я начал использовать Lift, я был немного удивлен тем, насколько интенсивно он использует отражение (или кажется), что было немного неожиданно для статически типизированного функционального языка. Мой опыт работы с JSP был похожим. Я довольно н…
05 сен '11 в 05:03
1 ответ

Почему этот код объявляет тип DISTINCT?

Линия ShlObj.pas 9922 (как в Delphi XE): type BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall; TFNBFFCallBack = type BFFCALLBACK; {$EXTERNALSYM BFFCALLBACK} Отвечая на комментарий Дэвида Хеффернана здесь, потом…
15 янв '12 в 23:29
1 ответ

В чем преимущество использования библиотечных классов и типов в подсказках типов Python?

Я начинаю изучать подсказки типов в Python для облегчения будущего переноса кода с Python на C. Мне интересно, в чем разница, если есть, между использованием типов непосредственно в подсказках типов и использованием классов, определенных в typing мо…
06 дек '17 в 21:10
1 ответ

Typedef для индексов в C# со статической проверкой типов без затрат времени выполнения

Довольно распространенным случаем является использование многомерных массивов со сложной индексацией. Это действительно сбивает с толку и подвержено ошибкам, когда все индексы являются целочисленными, потому что вы можете легко смешивать столбцы и с…
09 ноя '12 в 05:26
1 ответ

Как преобразовать полиморфное значение в строку?

Я на самом деле ищу функцию с подписью, как 'a -> string который преобразует данный полиморфный тип в строку. Я уже думал о чем-то вроде let func elem = match elem with | int -> string_of_int elem ... Надеюсь, кто-нибудь может мне помочь, спас…
9 ответов

Почему в C++ отсутствует модификатор endianness, как для подписи?

(Я думаю, этот вопрос может относиться ко многим типизированным языкам, но я решил использовать C++ в качестве примера.) Почему нет возможности просто написать: struct foo { little int x; // little-endian big long int y; // big-endian short z; // na…
1 ответ

Почему вся статическая типизация не выводится?

Поскольку Python поддерживает аннотации типов, он обеспечивает статическую дисциплину типизации. При работе с АСТ производится ast модуль, мне кажется, что, учитывая такую ​​дисциплину, все типы могут быть выведены, не должно быть необходимости в ан…
0 ответов

Использование GroovyDSL с @TypeChecked в IntelliJ IDEA: сборка проекта завершается неудачно

У меня есть jenkins.gdsl файл, определяющий некоторые привязки, которые я использую в своем скрипте Groovy. Кроме того, я хотел бы использовать @TypeChecked аннотации на мои методы, чтобы получить некоторые гарантии о встроенном коде. мой jenkins.gd…
01 мар '19 в 18:44
1 ответ

Сделать пустыми только подписку

Давайте представим, что я ненавидел ноль. Давайте притворимся, что отказ от него, например, @Nullable, недостаточно для меня. Допустим, я хотел, чтобы он был выбран; если объект явно не аннотирован @Nullable, то пустые значения не допускаются. Приме…