Результаты поиска по запросу "duck-typing"

1 ответ

en.wikipedia.org/wiki/Nominal_type_system

е, в TypeScript абсолютно нормально (с точки зрения компилятора) иметь такой код: class Vehicle { public run(): void { console.log('Vehicle.run'); } } class Task { public run(): void { console.log('Task.run'); } } function runTask(t: Task) ...

1 ответ

Скомпилированные языки, как правило, используются, когда приоритетом являются эффективность и безопасность типов. В противном случае я не могу придумать причину, по которой никто бы не использовал рубин :)

сновной язык сейчас - D, и я нахожусь в процессе изучения Python, потому что это требуется для курса, который я прохожу. Хотя я понимаю, почему динамические языки были бы глотком свежего воздуха для людей, программирующих на статических языках ...

2 ответа

 для аннотации типа в случаях, когда предоставляется только имя атрибута, и это также упоминается в PEP с примером.

в классе данных есть поле, типом которого может быть что угодно, как вы можете опустить аннотацию? @dataclass class Favs: fav_number: int = 80085 fav_duck = object() fav_word: str = 'potato'Кажется, что код выше на самом деле не создает поле ...

ТОП публикаций

1 ответ

, Не так ли?

риведенного ниже кода, interface SquareConfig{ color?: string; width?: number; } interface Square{ color: string; area: number; } function createSquare(config: SquareConfig): Square { let newSquare:Square = {color: "white", area: 100}; if ...

4 ответа

Это просто делает метапрограммирование, например, почти тривиальной задачей, что совсем не так в других языках, даже динамических.

ал текст, описывающий Ruby, и он сказал следующее: Ruby считается «рефлексивным» языком, потому что для программы на Ruby существует возможность анализировать себя (с точки зрения своей верстки), вносить коррективы в работу и даже перезаписывать ...

6 ответов

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

а у нас есть несколько классов, которые имеют несколько методов с одинаковой сигнатурой, но не соответствуют объявленному интерфейсу Java. Например, обаJTextField а такжеJButton (среди нескольких других вjavax.swing.*) есть метод public void ...

0 ответов

 а также

ьЭтоне вопрос о том, как реализовать или подражать утиной типизации в C # ... В течение нескольких лет у меня сложилось впечатление, что некоторые особенности языка C # зависели от структур данных, определенных в самом языке (что мне всегда ...

8 ответов

Как я могу определить, является ли переменная python строкой или списком?

У меня есть подпрограмма, которая принимает список строк в качестве параметра, но я бы хотел поддержать передачу одной строки и преобразование ее в список из одной строки. Например: def func( files ): for f in files: doSomethingWithFile( f ) ...

16 ответов

Есть ли смысл в интерфейсах на динамических языках?

В статических языках, таких как Java, вам нужны интерфейсы, потому что иначе система типов просто не позволит вам делать определенные вещи. Но в динамических языках, таких как PHP и Python, вы просто используете преимуществаутиная типизация. PHP ...

3 ответа

Если в Python написано "утка", стоит ли тестировать isinstance?

У вас есть класс Python, который нуждается в тесте equals. Python должен использовать Duck-typing, но стоит ли (лучше / точнее) включить или исключить тест на соответствие вуравнениефункционировать? Например: class Trout(object): def ...