Implicitly or explicitly typed
Go offsers both ways [1], although it is a strongly typed language. The following shows two different ways of variable declaration.
var i int = 10
i := 10 // same as var i = 10
A quick not about :=
usage from the official Go tour [2].
Inside a function, the := short assignment statement can be used in place of a var declaration with implicit type.
Outside a function, every statement begins with a keyword (var, func, and so on) and so the := construct is not available.
Since Go is a strongly typed language, it will give variable a default type as Javascript and Python do. The following rule is taken from the Go language specification [1].
An untyped constant has a default type which is the type to which the constant is implicitly converted in contexts where a typed value is required, for instance, in a short variable declaration such as i := 0 where there is no explicit type. The default type of an untyped constant is bool, rune, int, float64, complex128 or string respectively, depending on whether it is a boolean, rune, integer, floating-point, complex, or string constant.