Как измениться Названный Объемом Диапазона

Я был сожжен за трансляцию этих мнений публично, но вот так:

Хорошо написанный код на языках с динамической типизацией следует соглашениям статической типизации

Используя Python, PHP, Perl и несколько других динамически типизированных языков, я обнаружил, что хорошо написанный код на этих языках следует соглашениям статической типизации, например:

  • Его считают плохим стиль для повторного использования переменной с разными типами (например, ее плохой стиль - брать переменную списка и назначать int, а затем назначать переменную bool в том же методе). Хорошо написанный код на динамически типизированных языках не смешивает типы.

  • Ошибка типа в статически типизированном языке все еще является ошибкой типа в динамически типизированном языке.

  • Функции, как правило, предназначены для одновременной работы с одним типом данных, так что функция, которая принимает параметр типа T, может использоваться только с объектами типа T или подклассами T. ].

  • Функции, предназначенные для работы со многими различными типами данных, написаны таким образом, что параметры ограничиваются четко определенным интерфейсом. В общих чертах, если два объекта типов A и B выполняют сходную функцию, но не являются подклассами друг друга, то они почти наверняка реализуют один и тот же интерфейс.

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

Динамическая типизация не уменьшает количество кода, которое нужно писать программистам

Когда я укажу, как странно, что так много соглашений о статической типизации переходят в мир динамической типизации, Я обычно добавляю «так зачем использовать динамически типизированные языки для начала?». Непосредственный ответ - это нечто вроде написания более краткого, выразительного кода, потому что динамическая типизация позволяет программистам опускать аннотации типов и явно определенные интерфейсы. Тем не менее, я думаю, что наиболее популярные языки со статической типизацией, такие как C #, Java и Delphi, имеют громоздкий дизайн, а не в результате их систем типов.

Мне нравится использовать языки с реальной системой типов , такой как OCaml, которая не только статически типизирована, но и вывод типа и структурная типизация позволяют программистам опускать большинство аннотаций типов и определений интерфейса.

Существование семейства языков ML демонстрирует, что мы можем пользоваться преимуществами статической типизации со всей краткостью написания на динамически типизированном языке. Я на самом деле использую REPL OCaml для специальных, одноразовых сценариев точно так же, как все остальные используют Perl или Python в качестве языка сценариев.

18
задан Loïc Faure-Lacroix 18 December 2013 в 14:00
поделиться

2 ответа

Вы можете загрузить бесплатное дополнение Name Manager, разработанное мной и Яном Карелом Питерсом, с сайта http://www.decisionmodels.com/downloads.htm Это позволяет выполнять многие операции с именами, которые диспетчер имен Excel 2007 не может обрабатывать, включая изменение области имен.

В VBA:

Sub TestName()
Application.Calculation = xlManual
Names("TestName").Delete
Range("Sheet1!$A$1:$B$2").Name = "Sheet1!TestName"
Application.Calculation = xlAutomatic
End Sub
14
ответ дан 21 October 2019 в 05:41
поделиться

создать новое имя с нуля и удалить старое.

2
ответ дан 21 October 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: