登录
首页 >  Golang >  Go问答

这个“cast”到底在 Golang 中做什么?

来源:stackoverflow

时间:2024-04-08 14:33:35 287浏览 收藏

本篇文章给大家分享《这个“cast”到底在 Golang 中做什么?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

有人能给我指出 go 语法的正确方向吗:

(*int)(nil)

如果我有一个给定类型的值,并且我想将其转换为 float64,我可以这样做:

var num int = 65
fnum := float64(num)

如果我有一个接口并且我想将其“转换”为某种类型,我可以这样做:

func main() {
    concretevalue := dosomething("hello!")
    fmt.Printf("%T : %v", concretevalue, concretevalue)
}

func dosomething( v interface{} ) string {
    return v.(string)
}

(*int)(nil) 适合哪里?我如何获取有关此特定语法的信息?


解决方案


这是一个类型转换,与 float64(num) 相同,但是,因为转换后的类型是指针,所以需要额外的括号,否则 *int(nil) 意味着将 nil 转换为 int,然后取消引用它。

本篇关于《这个“cast”到底在 Golang 中做什么?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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