登录
首页 >  Golang >  Go问答

将接口转换为float32在go语言中

来源:stackoverflow

时间:2024-03-17 23:06:29 235浏览 收藏

在 Go 语言中,将接口类型转换为 float32 存在一些限制。直接使用类型断言可能无法成功转换,因为接口变量可能存储的是 float64 值(十进制数字文字的默认类型)。要正确转换,需要先将接口变量赋值为 float32 值,或者尝试依次转换为 float64 和 float32,以获取所需的结果。

问题内容

使用类型断言无法将 interface{} 转换为 float32

package main

import (
    "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?


正确答案


当代码运行时:

i = 1.1

它将 float64 值赋给变量 i;这是 go 中十进制数字文字的默认类型。当您尝试将其转换为 float32 时,它会失败,因为这不是 i 的基础类型。

如果要将i转换为float32,则需要在其中输入一个float32值:

i = float32(1.1)

转换将会成功。如果您希望能够转换为 float32float64,可以尝试转换为这两种类型,如果转换为 float64 成功,则将结果转换为 float32

本篇关于《将接口转换为float32在go语言中》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>