go的类型转换
Go 支持显式类型转换,语言本身要求严格的类型匹配,不能隐式转换。
示例:
i := 55 // int
j := 67.8 // float64
sum := i + int(j) // 将 float64 显式转换为 int
类型转换规则:
- 基本数值类型(int、float、byte、rune 等)之间可以互相转换,但精度可能丢失(如浮点转整数会截断小数)。
- 字符串与字节切片(
[]byte)或符文切片([]rune)之间可以通过string()、[]byte()、[]rune()显式转换。 - 接口类型可以通过类型断言(
value, ok := interface.(Type))转换为具体类型。 - 指针、结构体、函数等类型之间通常不能直接转换,除非通过
unsafe.Pointer或满足底层类型相同的条件。 - 自定义类型与其底层类型之间可以互相转换(如
type MyInt int,MyInt(10)与int(MyInt(10))合法)。 - 布尔类型不能与数值类型互相转换。

浙公网安备 33010602011771号