Skip to content

Commit e8cefc2

Browse files
zhangjinchengjincheng9
zhangjincheng
authored andcommitted
update lesson10
change username
1 parent e9834c7 commit e8cefc2

File tree

3 files changed

+140
-1
lines changed

3 files changed

+140
-1
lines changed

workspace/lesson10/array.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ func main() {
88
var float_num_list1 [5]float32 = [5]float32{1.0, 2.0, 3.0, 4.0, 5.0}
99
var float_num_list2 = [5]float32{1.0, 2.0, 3.0, 4.0, 5.0}
1010
int_num_list := [3]int{1, 2, 3}
11+
12+
for index := range float_num_list1 {
13+
fmt.Println("[float_num_list1]index=", index)
14+
}
15+
1116
for index, value := range float_num_list1 {
1217
fmt.Println("[float_num_list1]index=", index, "value=", value)
1318
}

workspace/lesson10/multi_array.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
// 定义的是直接初始化赋值
7+
array1 := [2][3]int {
8+
{0, 1, 2},
9+
{3, 4, 5}, // 如果花括号}在下一行,这里必须有逗号。如果花括号在这一行可以不用逗号
10+
}
11+
12+
fmt.Println("array1=", array1)
13+
14+
// 先给默认值,再对其中某些元素赋值
15+
array2 := [2][3]int{}
16+
array2[0][2] = 1
17+
array2[1][1] = 2
18+
fmt.Println("array2=", array2)
19+
20+
// 通过append赋值
21+
twoDimArray := [][]int{}
22+
row1 := []int{1,2,3}
23+
row2 := []int{4,5}
24+
twoDimArray = append(twoDimArray, row1)
25+
fmt.Println("twoDimArray=", twoDimArray)
26+
27+
twoDimArray = append(twoDimArray, row2)
28+
fmt.Println("twoDimArray=", twoDimArray)
29+
30+
fmt.Println(twoDimArray[0][2])
31+
fmt.Println(twoDimArray[1][1])
32+
33+
// 遍历二维数组,按照下标
34+
for i:=0; i<2; i++ {
35+
for j:=0; j<3; j++ {
36+
fmt.Printf("array1[%d][%d]=%d ", i, j, array1[i][j])
37+
}
38+
fmt.Println()
39+
}
40+
41+
// 遍历二维数组,按照range方式迭代
42+
for index := range twoDimArray {
43+
fmt.Printf("row %d is ", index) // index的值是0,1,表示二维数组的第1行和第2行
44+
fmt.Println(twoDimArray[index])
45+
}
46+
47+
// 可以直接取二维数组的某一行完整数据出来
48+
oneDimArray := array1[0]
49+
fmt.Println(oneDimArray) // [0, 1, 2]
50+
51+
}

workspace/lesson10/readme.md

Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,92 @@
7474

7575
* 声明
7676

77+
* 格式
78+
79+
```go
80+
var variable_name [size1][size2]...[sizeN] variable_type
81+
```
82+
83+
* 示例
84+
85+
```go
86+
var threeDimArray [2][3][4]int // 三维数组,大小是 2x3x4
87+
var twoDimArray [2][3] // 二维数组,大小是2x3
88+
```
89+
7790
* 初始化
7891

79-
* 访问数组
92+
* 初始化直接赋值
8093

94+
```go
95+
array1 := [2][3]int {
96+
{0, 1, 2},
97+
{3, 4, 5}, // 如果花括号}在下一行,这里必须有逗号。如果花括号在这一行可以不用逗号
98+
}
99+
```
100+
101+
* 初始化默认值,后续再赋值
102+
103+
```go
104+
array2 := [2][3]int{}
105+
array2[0][2] = 1
106+
array2[1][1] = 2
107+
fmt.Println("array2=", array2)
108+
```
109+
110+
* append赋值,数组的大小不能提前指定
111+
112+
```go
113+
twoDimArray := [][]int{}
114+
row1 := []int{1,2,3}
115+
row2 := []int{4,5}
116+
twoDimArray = append(twoDimArray, row1)
117+
fmt.Println("twoDimArray=", twoDimArray)
118+
119+
twoDimArray = append(twoDimArray, row2)
120+
fmt.Println("twoDimArray=", twoDimArray)
121+
```
122+
123+
* 访问二维数组
124+
125+
* 数组下标遍历
126+
127+
```go
128+
array1 := [2][3]int {
129+
{0, 1, 2},
130+
{3, 4, 5}}
131+
for i:=0; i<2; i++ {
132+
for j:=0; j<3; j++ {
133+
fmt.Printf("array1[%d][%d]=%d ", i, j, array1[i][j])
134+
}
135+
fmt.Println()
136+
}
137+
```
138+
139+
* range遍历
140+
141+
```go
142+
for index := range twoDimArray {
143+
fmt.Printf("row %d is ", index) //index的值是0,1,表示二维数组的第1行和第2行
144+
fmt.Println(twoDimArray[index])
145+
}
146+
```
81147

148+
* 注意事项
149+
150+
* 多维数组的每一维度的大小可以不相同,比如二维数组的第0行和第1行的size可以不同。
151+
152+
下例里的第0行size是3,第1行size是2。如果直接访问twoDimArray\[2][2]会报错
153+
154+
```go
155+
twoDimArray := [][]int{}
156+
row1 := []int{1,2,3}
157+
row2 := []int{4,5}
158+
twoDimArray = append(twoDimArray, row1)
159+
fmt.Println("twoDimArray=", twoDimArray)
160+
161+
twoDimArray = append(twoDimArray, row2)
162+
fmt.Println("twoDimArray=", twoDimArray)
163+
```
164+
82165

0 commit comments

Comments
 (0)