Go语言支持强制类型转换,可转换的类型包括数字、布尔、字符串、interface{}、指针和结构体。强制转换语法为:var = expression.(type),其中var是变量,expression是表达式,type是目标类型。

Go语言强制类型转换
Go语言中可以强制类型转换的类型包括:
- 数字类型(int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、float32、float64、complex64、complex128)
- 布尔类型(bool)
- string 类型
- interface{} 类型
- 指针类型(*T)
- 结构体类型(T)
强制类型转换语法
强制类型转换的语法如下:
立即学习“go语言免费学习笔记(深入)”;
var = expression.(type)
其中:
-
var是要转换的变量 -
expression是要转换的表达式 -
type是目标类型
强制类型转换规则
- 只能将字面量或变量强制转换为兼容的类型。
- 只能将 interface{} 类型强制转换为其实现的接口或基本类型。
- 只能将指针类型强制转换为与之兼容的指针类型或 nil 值。
- 只能将结构体类型强制转换为与之兼容的结构体类型。
示例
以下是一些强制类型转换的示例:
// 将 int 强制转换为 float64
var f = float64(i)
// 将 string 强制转换为 int
var n, err = strconv.Atoi(s)
// 将 interface{} 强制转换为 string
var name = message.(string)
// 将指针类型强制转换为 nil 值
var p *int = nil








