Введение выведения типов в Go
Go поддерживает вывод типов. Во многих случаях программистам не нужно явно указывать типы некоторых значений в коде. Компиляторы Go определят типы этих значений по контексту.
В коде Go, если место нуждается в значении определенного типа, а нетипизированное значение (часто константа) может быть представлено как значение определенного типа, то в месте можно использовать нетипизированное значение. Компиляторы Go будут рассматривать нетипизированное значение как типизированное значение определенного типа. К таким местам относятся операнд в операторной операции, аргумент в вызове функции, целевое значение или исходное значение в присваивании и т. д.
Некоторые обстоятельства не предъявляют требований к типам используемых значений. Если в таких обстоятельствах используется нетипизированное значение, компиляторы Go будут рассматривать нетипизированное значение как типизированное значение его типа по умолчанию.
Случаи вывода двух типов можно рассматривать как неявные преобразования.
В приведенных далее главах объявления констант и переменных показаны некоторые случаи вывода типов.