登录
首页 >  Golang >  Go问答

Go语言类型推断什么时候发生?

来源:stackoverflow

时间:2024-04-10 21:54:38 257浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《Go语言类型推断什么时候发生?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

var (
    HOME = os.Getenv("HOME")
    USER = os.Getenv("USER")
    GOROOT = os.Getenv("GOROOT")
)

这些变量的类型是在编译期间还是运行时确定的?


正确答案


go 是一种静态类型语言,因此它必须在编译时发生。

Spec: Variable declarations:

如果存在类型,则每个变量都会被赋予该类型。否则,每个变量都会在赋值中被赋予相应初始化值的类型。如果该值是无类型常量,则首先将其隐式从 converted 转换为 default type;如果它是无类型布尔值,则首先将其隐式转换为 bool 类型。预声明值 nil 不能用于初始化没有显式类型的变量。

var d = math.Sin(0.5)  // d is float64
var i = 42             // i is int
var t, ok = x.(T)      // t is T, ok is bool
var n = nil            // illegal

在您的示例中,由于 os.Getenv() 的返回类型是 string,因此所有这些变量的类型都将为 string

以上就是《Go语言类型推断什么时候发生?》的详细内容,更多关于的资料请关注golang学习网公众号!

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