i := 1
var IdentifierList = ExpressionList
iiint1intint

So Go is statically typed. That means variables will have a static type and values stored in them at runtime will always be of that type. Being statically typed does not mean you have to explicitly specify the static type, it just means variables must have a static type - decided at compile time - which condition is met even if you use short variable declaration and you don't specify it.

var
var i = 1

In which case the type will also be deduced from the type of the initializer expression.