MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Зачем нужна динамическая типизация?"
Answer 903657
Компактность кода, в основном. Допустим, у нас есть несколько классов, занимающих совершенно разное место в иерархии наследования, но объединенных наличием общего метода SaveToFile, принимающего один строковый аргумент (путь к файлу). Затем мы хотим написать функцию, которая будет сохранять в файл все элементы из массива произвольных объектов.
На языке со статической типизацией нам нужно будет объявить интерфейс, пометить все классы с методом SaveToFile как реализующие его, и использовать приведение типов:
interface ISaveable{ void SaveToFile(string path); } void SaveAll(object[] array, string path){ for(int i=0; i<array.Length; i++){ ((ISaveable)array[i]).SaveToFile(path + '_' + i.ToString()); } }
На языке с динамической типизацией все будет намного короче:
function SaveAll(array, path){ for(i=0; i<array.length; i++){ array[i].SaveToFile(path + '_' + i); } }
Краткость кода не всегда приветствуется, но для скриптовых языков, на которых часто пишутся программы "на один раз", или когда важна экономия на размере исходного кода (браузерный JavaScript), это преимущество может выходить на первый план.
Подробнее по сравнению динамической и статической типизации: Is there a real advantage to dynamic languages?
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.