Учитывая тот факт, что go статически типизированный язык. В чем смысл динамического типа некоторого значения?
Нужно уточнить динамические типы в golang
Ответ 1
"Динамический тип" переменной важен при обработке значений интерфейса. Динамические типы определяются следующим образом (источник):
Статический тип (или просто тип) переменной - это тип, определенный его объявлением. Переменные типа интерфейса также имеют отдельный динамический тип, который является фактическим типом значения, хранящегося в переменной во время выполнения. Динамический тип может различаться во время выполнения, но всегда присваивается статическому типу переменная интерфейса. Для типов без интерфейса динамический тип всегда является статическим.
Рассмотрим следующий пример:
var someValue interface{} = 2
Статический тип someValue
равен interface{}
, но динамический тип int
и может очень
хорошо изменится в будущем. Пример:
var someValue interface{} = 2
someValue = "foo"
В приведенном выше примере динамический тип someValue
изменился с int
на string
.