类型转换
数值转换
概念
- 隐式转换: 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
}