2011-03-05 8 views
0

Я слышал, что эти (скажем, например, Groovy) языки имеют возможность изменять имя переменной или методы вызова динамически во время выполнения! Что вы подразумевали под динамическими языками? И какова реальная потребность в изменении любых значений во время выполнения? Разве это не приводит к путанице, потому что во время выполнения, если вы меняете какую-либо ценность (или ваши программирующие константы меняют что-либо), то зачем нужна компиляция (потому что она решает и подтверждает, что эти значения будут использоваться, тогда нет смысла меняя его динамически)? И я знаю, что должно быть что-то полезное, поэтому только люди ввели эти понятия!Я слышал, что «динамический» меняется во время Runtime? Что это?

Наверное, я понимаю о моем вопросе! И мне нужно некоторое краткое объяснение :)

ответ

1

Три точки:

1) Да, это то, что подразумевается под «динамическими языками», - что вы можете добавить методы в класс во время выполнения является общей чертой динамические языки (например).

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

3) проверки времени компиляции могут по-прежнему помогать в разработке с динамическими языками, если не более, чем для синтаксических проверок. Однако, с динамическими языками, вы теряете некоторую безопасность во время компиляции нединамических языков. Обратите внимание, что некоторые динамические языки интерпретируются (например JavaScript), поэтому его вид спорный.

Смежные вопросы