跳到主要内容

类型转换

数值转换

概念

  • 隐式转换: Go 不做数值类型间隐式转换;
  • 窄类型转换: 可能截断数据;

语法格式

func main() {
var a int = 10
var b int64 = int64(a) // 显式转换 int 为 int64
var c float64 = float64(a) // 显式转换 int 为 float64
println(b, c)
}

string 与 byte slice

概念

  • string 不可变: 修改 byte slice 不会修改原字符串;
  • 转换复制: string[]byte 转换通常产生新存储;

语法格式

func main() {
s := "go"
bs := []byte(s) // 复制字符串字节到 byte slice
bs[0] = 'G'
s2 := string(bs) // 复制 byte slice 到新字符串
println(s, s2) // go Go
}