设置整个 const 块的类型

我有一个自定义数据类型


type Custom string


还有一个 const 块


const (

    Item1 = "placeholder"

    ...

    Item10 = "placeholder"

)

是否可以为 const 块中的每个项目设置自定义类型,而不必将其放置在每个条目中?


德玛西亚99
浏览 138回答 1
1回答

BIG阳

规范:常量声明:ConstDecl      = "const" ( ConstSpec | "(" { ConstSpec ";" } ")" ) .ConstSpec      = IdentifierList [ [ Type ] "=" ExpressionList ] .常量声明是一系列常量规范,其中每个都包含可选类型。可能被利用的一件事是:在带括号的const声明列表中,表达式列表可以从除第一个 ConstSpec 之外的任何内容中省略。这样的空列表等价于对前面的第一个非空表达式列表及其类型(如果有)的文本替换。因此,省略表达式列表等同于重复之前的列表。标识符的数量必须等于上一个列表中的表达式数量。与iota常量生成器一起,这种机制允许轻量级的顺序值声明......因此,例如在下面的示例中,两者都Item1将Item2是类型Custom:const (    Item1 Custom = "v1"    Item2)这里的问题是两者Item1和Item2将具有相同的"v1"值。iota除非您在表达式中使用,否则这并不是真正有用。只指定一次类型的一种方法是在值之前列出标识符:const (    Item1, Item2 Custom = "v1", "v2")在上面的示例中,两者Item1都Item2属于类型,请在Go PlaygroundCustom上尝试一下。这里的缺点是标识符可能“远离”它的值,这比在单独的行中列出它们更不可读:const (    Item1 Custom = "v1"    Item2 Custom = "v2")或者,您可以使用类型化的常量值将类型“移动”到表达式:const (    Item1 = Custom("v1")    Item2 = Custom("v2"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go