使用类型断言不起作用将 interface{} 转换为 float32package mainimport ( "fmt")func main() { var i interface{} i = 1.1 num, ok := i.(float32) fmt.Println(ok) fmt.Println(num)}https://play.golang.org/p/iEJWLbBCHs8这将打印 false 和 0。如何将 interface{} 转换为 float32?
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
当代码运行时:
i = 1.1
它为变量分配一个值 ;这是 Go 中十进制数文本的默认类型。当您尝试将其转换为 时,它会失败,因为这不是 的基础类型。float64
i
float32
i
如果要转换为 ,则需要在其中输入一个值:i
float32
float32
i = float32(1.1)
转换将成功。如果希望能够转换为 或 ,则可以尝试转换为这两种类型,如果转换为成功,则将结果转换为 。float32
float64
float64
float32
呼啦一阵风
TA贡献1802条经验 获得超6个赞
要回答您的问题:
如何将 interface{} 转换为 float32?
一点也不。
你所能做的就是在接口{}中存储一个 float32,然后再次键入断言它。代码的问题在于您不存储 float32。
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消