Groovy слабо типизирован или строго типизирован?
Я не понимаю, как работает отличный ввод текста. В википедии написано, что она имеет строгую типизацию, но я прекрасно могу это сделать на переводчике:
1 + '1'
==> 11
Так что, возможно, я запутался и не понял, что такое слабая типизация, но я хотел бы знать, что это за функция.
1 ответ
Это не проблема слабо или строго типизированных языков. Как показывает Делнан, утомленная приятная тема, и терминология здесь может быть различной.
То, что вы видите в интерпретаторе, это работа перегруженного оператора плюс, который позволяет вам легко объединять значения в строки, очень полезная функция для печати некоторого вывода или регистрации.
Чтобы быть конкретным, Groovy слабо (необязательно, как предложил Тим) типизирован, вы можете определить типы, или вы можете опустить их, используя def
ключевое слово. Это также позволяет вам делать много неявных преобразований, из-за его динамического характера. Больше информации о типах. Есть несколько аннотаций, позволяющих вам изменить это поведение, например @CompileStatic или @TypeChecked.
В каждой конкретной ситуации вы можете получить лучшее решение, используя правильную стратегию набора текста. Это очень Groovy;)