猿问

这个数组初始化语法是什么意思?(带键的元素)

我最近发现了下面的代码:


var noEscape = [256]bool{

    'A': true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,

    'a': true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,

    '0': true, true, true, true, true, true, true, true, true, true,

    '-': true,

    '.': true,

    '_': true,

    '~': true,

}

我知道默认情况下这[N]bool是用 N false(零)初始化的。如果指定了后跟冒号的索引,则可以从索引(包括)中定义值。在哪里描述的?哪些类型可以用作索引值(char示例中有 a )?


ITMISS
浏览 124回答 1
1回答

当年话下

对于数组或切片文字,索引值必须是常量。来自“复合文字”的文档对于数组和切片文字,以下规则适用:每个元素都有一个关联的整数索引来标记它在数组中的位置。带有键的元素使用键作为索引;键必须是一个常量整数表达式。没有键的元素使用前一个元素的索引加一。如果第一个元素没有键,则其索引为零。示例中的文字字符是无类型常量,恰好被写成单个符文文字。如果您将这些值中的任何一个分配给用作索引的变量,则代码将无法编译。
随时随地看视频慕课网APP

相关分类

Go
我要回答