Constant declarations

未匹配的标注

一个常量声明将一组标识符(常量名称)绑定到一组常量表达式的值。标识符的数量和表达式的数量必须相等,并且左边的第 n 个标识符绑定到右边的第 n 个表达式的值。

ConstDecl      = "const" ( ConstSpec | "(" { ConstSpec ";" } ")" ) .
ConstSpec      = IdentifierList [ [ Type ] "=" ExpressionList ] .

IdentifierList = identifier { "," identifier } .
ExpressionList = Expression { "," Expression } .

如果类型存在,则所有常量均采用特定类型,并且表达式必须可以赋值给相应类型。如果省略类型,则常量采用相应表达式的类型。如果表达式值是无类型的常量,则声明的常量将保持无类型,并且常量标识符表示该无类型的常量值。例如,如果表达式是浮点常量,则常量标识符表示浮点常量,即使常量的小数部分为零也是如此。

const Pi float64 = 3.14159265358979323846
const zero = 0.0         // 无类型浮点数常量
const (
    size int64 = 1024
    eof        = -1  // 无类型整数常量
)
const a, b, c = 3, 4, "foo"  // a = 3, b = 4, c = "foo", 无类型整数和字符串常量
const u, v float32 = 0, 3    // u = 0.0, v = 3.0

在带括号的const声明列表中,除第一个 ConstSpec 之外的任何表达式都可以省略表达式列表。这样的空列表等效于第一个前面的非空表达式列表及其类型(如果有)的文本替换。因此,省略表达式列表等同于重复前面的列表。标识符的数量必须等于上一个列表中的表达式的数量。与iota 常量生成器一起使用,此机制允许对连续值进行轻量级声明:

const (
    Sunday = iota
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Partyday
    numberOfDays  // 不导出此常量 
)

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

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-specificatio...

译文地址:https://learnku.com/docs/go-specificatio...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~