Variable declarations
一个变量声明创建一个或多个变量,并将相应的标识符绑定到它们、为每之设定类型和初始值。
VarDecl = "var" ( VarSpec | "(" { VarSpec ";" } ")" ) .
VarSpec = IdentifierList ( Type [ "=" ExpressionList ] | "=" ExpressionList ) .
var i int
var U, V, W float64
var k = 0
var x, y float32 = -1, -2
var (
i int
u, v, s = 2.0, 3.0, "bar"
)
var re, im = complexSqrt(-1)
var _, found = entries[name] // map lookup; only interested in "found"
如果变量声明时给出的是表达式列表,则变量将按照赋值的规则使用表达式进行初始化。否则(即未给定表达式)每个变量都会初始化为其零值。
如果类型显示存在,则为每个变量都指定为该类型。否则,将为每个变量分配赋值的相应初始化值的类型。如果该值是未类型化的常数,则首先将其隐式转换为默认类型 ;如果它是无类型的布尔值,则首先将其隐式转换为 bool
类型。预声明的值 nil
不能用于初始化没有显式类型的变量。
var d = math.Sin(0.5) // d 的类型是 float64
var i = 42 // i 的类型是 int
var t, ok = x.(T) // t 的类型是 T, ok 的类型是 bool
var n = nil // 不合法
实现限制:如果在函数体中声明了但是从未使用过变量,则编译器可能会 w 实现限制:如果在函数体中声明了但是从未使用过变量,则编译器可能会认为这一行为是非法的。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。