Давайте возьмем простую функцию, который увеличивает целое:Каковы некоторые примеры, когда динамическая типизация предпочтительнее статической типизации?
Статическая типизация:
function incrementNumber(int n) {
n = n + 1;
}
Динамический ввод:
function incrementNumber(n) {
if (type of n != int) {
throw Error;
}
n = n + 1;
}
Эти достижения то же самое, но динамический подход является более уродливым и более продолжительным, потому что требуется «проверка типа».
Я видел, как многие программисты используют этот подход, и это заставляет меня задаться вопросом, какие именно преимущества динамически типизированного языка, так как большинству функций потребуется проверка параметров как это?
У вас есть примеры, когда динамическая типизация работает (или выглядит) лучше, чем статическая типизация?
Если вы выполняете проверку типов для динамического набора текста, цель теряется. Вы должны просто быть обеспокоены тем фактом, что оператор '+' определен для любого типа, в который входит. Так что независимо от того, является ли это int, decimal или string, он должен работать до тех пор, пока они знают, как выполнять операцию '+' не так ли? –
Именно поэтому я был смущен: проверка типов поражает цель динамического набора текста, но в то же время я видел, как много разработчиков это делали. Так это плохая практика? –
Это может быть скорее неадекватное знание или новичка, а не плохая практика. :) –