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 intMyInt(10)int(MyInt(10)) 合法)。
  • 布尔类型不能与数值类型互相转换。
posted @ 2026-03-26 13:40  cyusouyiku  阅读(4)  评论(0)    收藏  举报