-
Notifications
You must be signed in to change notification settings - Fork 20
/
slice.go
95 lines (72 loc) 路 1.58 KB
/
slice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package main
import "fmt"
func f1() {
var array [3]int = [3]int{1, 2, 3}
fmt.Printf("%d\n", array[0]-1) // 1
var slice []int
slice = array[:] // {1,2,3}
fmt.Printf("%d\n", slice[0])
fmt.Printf("%d\n", slice[1])
fmt.Printf("%d\n", slice[2])
slice = array[:3] // {1,2,3}
fmt.Printf("%d\n", slice[0]+3)
fmt.Printf("%d\n", slice[1]+3)
fmt.Printf("%d\n", slice[2]+3)
slice = array[1:3] // {2,3}
fmt.Printf("%d\n", slice[0]+5)
fmt.Printf("%d\n", slice[1]+5)
slice = array[2:3] // {3}
fmt.Printf("%d\n", slice[0]+6)
slice = array[2:] // {3}
fmt.Printf("%d\n", slice[0]+7)
var slice2 []int = array[1:3] // {2,3}
fmt.Printf("%d\n", slice2[1]+8)
}
func f2() {
var slice []int = []int{1, 2, 3}
fmt.Printf("%d\n", slice[2]+9) // 12
var slice2 []int
slice2 = []int{4, 5, 6}
fmt.Printf("%d\n", slice2[2]+7) // 13
var slice3 []int = slice2
fmt.Printf("%d\n", slice3[2]+8) // 14
var slice4 []int
slice4 = slice3
fmt.Printf("%d\n", slice4[2]+9) //15
bilbo := Hobbit{
id: 0,
items: nil,
}
if bilbo.items == nil {
fmt.Printf("%d\n", 16)
}
bilbo = Hobbit{
id: 0,
items: []int{1, 2, 3},
}
fmt.Printf("%d\n", bilbo.items[2]+14) // 17
bilbo.items = []int{15, 16, 17, 18}
fmt.Printf("%d\n", bilbo.items[3]) // 18
}
func f3() {
var array [3]int = [3]int{1, 2, 3}
var slice = array[1:3]
slice[1] = 19
fmt.Printf("%d\n", slice[1]) // 19
fmt.Printf("%d\n", array[2]+1) // 20
}
var gslice = []int{1, 3, 5}
func f4() {
gslice[1] = 21
fmt.Printf("%d\n", gslice[1]) // 21
}
func main() {
f1()
f2()
f3()
f4()
}
type Hobbit struct {
id int
items []int
}