Use*_*789 5 arrays initialization declaration variable-assignment go
GO中是否存在显式数组初始化(声明和赋值),或者唯一的方法是使用速记运算符?这是一个实际的例子 - 这两个是平等的:
a := [3]int{1, 0, 1}
var a [3]int = [3]int{1, 0, 1}
Run Code Online (Sandbox Code Playgroud)
它们是等价的.一般来说:规范:短变量声明:
一个短变量声明使用语法:
Run Code Online (Sandbox Code Playgroud)ShortVarDecl = IdentifierList ":=" ExpressionList .它是具有初始化表达式的常规变量声明的简写,但没有类型:
Run Code Online (Sandbox Code Playgroud)"var" IdentifierList = ExpressionList .
所以这一行:
a := [3]int{369, 0, 963}
Run Code Online (Sandbox Code Playgroud)
相当于:
var a = [3]int{369, 0, 963}
Run Code Online (Sandbox Code Playgroud)
但由于表达式列表是类型的复合文字[3]int,因此以下内容相同:
var a [3]int = [3]int{369, 0, 963}
Run Code Online (Sandbox Code Playgroud)
如果存在类型,则为每个变量赋予该类型.否则,为每个变量赋予赋值中相应初始化值的类型.
所以你可以使用以下任何一个,都声明并初始化一个类型的变量[3]int:
a := [3]int{369, 0, 963}
b := [...]int{369, 0, 963}
var c = [3]int{369, 0, 963}
var d [3]int = [3]int{369, 0, 963}
var e [3]int = [...]int{369, 0, 963}
var f = [...]int{369, 0, 963}
Run Code Online (Sandbox Code Playgroud)
笔记:
请注意,在复合文字中,不列出所有值是有效的.未明确指定其值的元素将是元素类型的零值.您可以在枚举中的值之前包含可选索引,以指定其值将是其元素的元素.
对于数组和切片文字,以下规则适用:
- 每个元素都有一个关联的整数索引,标记其在数组中的位置.
- 带键的元素使用键作为索引; 键必须是常量整数表达式.
- 没有键的元素使用前一个元素的索引加一个.如果第一个元素没有键,则其索引为零.
由于您的初始数组包含0元素类型的零值,因此int您可以将其从文字中排除.要创建变量并将其初始化为值[3]int{369, 0, 963},您也可以这样做:
// Value at index 1 implicitly gets 0:
g := [3]int{369, 2: 963}
h := [...]int{369, 2: 963}
Run Code Online (Sandbox Code Playgroud)
试试Go Playground上的所有例子.
有关更多详细信息,请参阅此问题+实际示例:golang数组初始化中的键控项
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |