Описание тега strong-typing
Система типизации, которая устанавливает ограничения на то, какие операции или методы могут вызываться для объекта на основе типа.
См. Статью в Википедии, где подробно обсуждается строгая типизация. См. Также статью о сравнении систем типов.
Антоним: слабая типизация.
Соображения о строгой типизации:
- приведения / преобразования типов
- генерирование ошибок (т.е. гарантия отказа) при вызове недопустимых методов / функций
- безопасность типа
Сравнение сильного / слабого со статическим / динамическим (это не одно и то же!):
- статический / динамический - это когда происходит проверка типа
- сильный / слабый - это проверка того, какой тип происходит
Примеры:
Сильный, статичный. Этот код Java вызывает ошибку компиляции, потому чтоString
не имеет метода, называемого thisIsNotAMethod()
:
"mystring".thisIsNotAMethod();
Сильный, динамичный. Этот код python вызывает исключение во время выполнения, потому что нельзя добавлять целые числа и строки:
3 + "34"
# result: TypeError: unsupported operand type(s) for +: 'int' and 'str'