内建变量类型
Go 的内建变量类型:
- bool, string
- (u)int, int8, int16, int32, int64, uintptr(指针, go的指针比C的指针方便很多)
- byte(8位), rune(32位)(Go的字符类型, 相当于Go的char类型)
- float32, float64, complex64, complex128
强制类型转换
Golang 当中的类型转换只能是强制的。(对比 C++,C++ 当中很多强制类型转换是隐式的,编译器不会检查隐式类型转换的潜在错误)
比如对于下述代码:
func triangle() {var a, b int = 3, 4var c intc = math.Sqrt(a * a + b * b)fmt.Println(c)
}
👆 这段代码会在第四行给 c 赋值的语句部分报错:
原因是 int 不可以隐式地转为 float64,而必须显式地转换,如同构造函数:
func triangle() {var a, b int = 3, 4var c intc = int(math.Sqrt(float64(a * a + b * b)))fmt.Println(c)
}