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实现限制:如果在函数体中声明了但是从未使用过变量,则编译器可能会认为这一行为是非法的。

本文章首发在 LearnKu.com 网站上。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~