Implicit type conversion
As stated in the Go language specification[1], go Go is a strongly typed language. However, although the spec lists all the possible explicit conversions, it does not mention the implicit conversion.
Here is an automated test I wrote to test most of the implicit type conversions in languages like C and Java.
// go run implicit-type.go
package main
import "fmt"
func main(){
var i int = 1;
fmt.Printf("Created an integer i = %d\n", i)
// The following code block will not run
// Error:
// cannot use i (type int) as type float32 in assignment
// var f float32 = i;
// fmt.Printf("Implicitly convert i to a float %f\n", f)
//
var c rune = 'a'
fmt.Printf("Created a character c = %c\n", c)
// The following code block will not run
// Error:
// cannot use c (type rune) as type int in assignment
// var c_i int = c
// fmt.Printf("Implicitly convert a to an int %i\n", c_i)
var b bool = true
fmt.Printf("Created a bool b = %s\n", b)
// The following code will not run
// Similar error as before
// i = b
}
Now I see the reason why the language spec does not mention implicit conversion. It is impossible to convert types implicitly.