剑尘 4年前

修改理由:

好像翻译错了 两个都是 [3] int 完全

此投稿已在 4年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1  
21![Golang](https://iocaffcdn.phphub.org/uploads/images/201904/03/1/KvHLnScPvQ.png!large)
32
43> 数组是一个容纳相同数据类型的容器。 Go 中的数组的长度是固定的,无法因为数据的增加而自动扩展。
 
1110
1211> 数组是一种复合数据类型,它由 `整型`,`字符串`,`布尔` 等原始数据类型组成。
1312
14 
 13
1514
1615## ☛ 如何定义一个数组?
1716
 
3736[0 0 0]
3837```
3938
40 
 39
4140
4241## ☛ 值的分配
4342
 
5150
5251在上面的程序中,我们使用 `a [index]` 语法为数组中的 3 个元素赋值。
5352
54 
 53
5554
5655## ☛ 初始值
5756
 
8584
8685<https://play.golang.org/p/J4x7X8Vg73G>
8786
88 
 87
8988
9089## ☛ 多行初始值
9190
 
9998
10099
101100
102 
 101
103102
104103## ☛ 数组长度的自动申明
105104
 
111110
112111上面的程序将打印相同的结果,因为 Go 编译器会统计数组的元素个数为「4」
113112
114 
 113
115114
116115## ☛ 求取数组的长度
117116
 
121120
122121<https://play.golang.org/p/wV9edsKhuh4>
123122
124 
 123
125124## ☛ 数组的比较
126125
127126正如我们之前在数组定义中讨论的那样,数组本身就是一种数据类型。 `[3] int` 与 `[4] int` 是两个不同的数组,与 `[4] string` 更是不同的两个数组。这就像比较`int == string` 或 `apple == orange` 一样,这是无效和无意义的。 因此,与其他编程语言不同,这些不同数据类型的数组是不能相互比较的。
128127
129 然而 `[3] int` 可以与 `[3] int` 进行比较,即使它们的数组元素不匹配,但是因为它们具有相同的数据类型。
 128然而 `[6] int` 可以与 `[3] int` 进行比较,即使它们的数组元素不匹配,但是因为它们具有相同的数据类型。
130129
131130**对于与第二个数组是相同条件是:两个数组应该是相同的类型,其中必须包含相同的元素,并且所有元素必须是相同的顺序。** 在这种情况下,用 `==` 比较 将返回的结果是 `true`。 如果这些条件中的一个或多个不匹配,则返回 `false` 。
132131
133 
 132
134133
135134Go 首先匹配数据类型,然后根据数组的索引来比较两个数组的每个元素是否相同(包括元素的值以及顺序是否相同)。
136135
 
144143
145144但是在第三次比较的情况下,由于数组 `a` 和 `d` 包含相同顺序的相同元素,因此`a == d` 将返回 `true` 。 因此上面的程序打印结果如下。
146145
147 
 146
148147
149148## ☛数组迭代
150149
 
167166
168167<https://play.golang.org/p/z0_v0CKquXU>
169168
170 
 169
171170
172171## ☛ 多维数组
173172
 
185184
186185<https://play.golang.org/p/w7oyAb_Acik>
187186
188 
 187
189188
190189Go 还提供了多维数组的简写方式:
191190
 
209208}
210209```
211210
 211  
 212  
 213### 值传递  
 214  
 215像 `int` 或 `string` 类型一样,将数组传递给函数,属于值传递。函数只是接收它的副本。因此,在函数内部对数组的改变,不会影响原始数组的值。  
 216  
 217**我为什么要强调这一点**,因为,当后面学到 `slice` 的时候,你会发现就不是这个情况了。  
 218  
212219
213   
214 ### 值传递  
215   
216 像 `int` 或 `string` 类型一样,将数组传递给函数,属于值传递。函数只是接收它的副本。因此,在函数内部对数组的改变,不会影响原始数组的值。  
217   
218 **我为什么要强调这一点**,因为,当后面学到 `slice` 的时候,你会发现就不是这个情况了。  
219   
220