var (
HOME = os.Getenv("HOME")
USER = os.Getenv("USER")
GOROOT = os.Getenv("GOROOT")
)
这些变量的类型是在编译期间还是在运行时确定的?
慕莱坞森
浏览 52回答 1
1回答
天涯尽头无女友
Go是一种静态类型语言,因此它必须在编译时发生。规范:变量声明:如果存在某个类型,则为每个变量指定该类型。否则,将为每个变量分配中相应初始化值的类型。如果该值是非类型化常量,则首先将其隐式转换为其默认类型;如果它是非类型化的布尔值,则首先隐式转换为类型 。预声明值不能用于初始化没有显式类型的变量。boolnilvar d = math.Sin(0.5) // d is float64var i = 42 // i is intvar t, ok = x.(T) // t is T, ok is boolvar n = nil // illegal在您的示例中,因为返回了 os 的类型。Getenv() 是 ,所有这些变量都将是 类型。stringstring