Like all major programming languages (yes, including Python and JavaScript), values in Go are typed. Unlike Python or JavaScript however, Go's functions and variables are also typed, and strongly so. What this means is that the following code will cause the program not to compile:
var a inta = "Hello World"
This sort of behavior is known outside the academic world as strongly-typed. Within academic circles, strongly-typed is generally meaningless.
Go allows programmers to define their own types too:
type email string
Here, we're defining a new type email. The underlying kind of data is a string.
Why would you want to do this? Consider this function:
func emailSomeone(address, person string) { ... }
If both are string, it would be ...