При определении переменной мы можем опускать тип в том случае, если мы явно инициализируем переменную каким-нибудь значением:
var name = "Tom"
В этом случае компилятор на основании значения неявно выводит тип переменной. Если присваивается строка, то то соответственно переменная будет представлять тип string, если присваивается целое число, то переменная представляет тип int и т.д.
То же самое по сути происходит при кратком определении переменной, когда также явным образом не указывается тип данных:
name := "Tom"При этом стоит учитывать, что если мы не указываем у переменной тип, то ей обязательно надо присвоить некоторое начальное значение. Объявление переменной одновременно без указания типа данных и начального значения будет ошибкой:
var name // ! ОшибкаНадо либо указать тип данных (в этом случае переменная будет иметь значение по умолчанию):
var name stringЛибо указать начальное значение, на основании которого выводится тип данных:
var name = "Tom"либо
var name string = "Tom"Неявная типизация нескольких переменных:
var ( name = "Tom" age = 27 )Или так:
var name, age = "Tom", 27