Ответ
Строгая типизация (Strong Typing) означает, что язык программирования накладывает строгие ограничения на смешивание переменных разных типов. Неявные преобразования типов (implicit conversions) либо запрещены, либо сведены к минимуму.
Разница между статической и строгой типизацией:
- Статическая типизация отвечает на вопрос КОГДА происходит проверка типов (на этапе компиляции).
- Строгая типизация отвечает на вопрос КАК происходит проверка (насколько строги правила смешивания типов).
Go является языком как со статической, так и со строгой типизацией.
Пример строгой типизации в Go:
Нельзя просто сложить int
и float64
без явного приведения типа.
var a int = 5
var b float64 = 2.5
// var c = a + b // Ошибка компиляции: invalid operation: a + b (mismatched types int and float64)
// Для выполнения операции требуется ЯВНОЕ приведение типа:
var c = float64(a) + b
fmt.Println(c) // Вывод: 7.5
В языках со слабой типизацией (например, JavaScript) операция 5 + '5'
может дать непредсказуемый результат ('55'
или 10
), так как язык пытается неявно преобразовать типы. В Go такая операция вызовет ошибку компиляции, что делает код более предсказуемым и надежным.