数组
func main() {
var arr1 [5]int
arr2 := [3]int{1, 2, 3}
arr3 := [...]int{1, 2, 3, 4, 5}
fmt.Println(arr1, arr3, arr2)
for i, v := range arr3 {
fmt.Println(arr3[i] + v)
}
for _, v := range arr2 {
fmt.Println(v)
}
}
- 数组是值类型
- [10]int和[20]int是不同的类型
- 一般不直接使用数组
切片 Slice
func main() {
arr := [...]int{1, 2, 3, 4, 5, 6}
fmt.Println(arr[2:5])
fmt.Println(arr[:5])
fmt.Println(arr[2:])
fmt.Println(arr[:])
updateSlice(arr[:])
fmt.Println(arr)
s1 := arr[2:5]
s1 = s1[2:3]
}
func updateSlice(s []int) {
s[0] = 100
}


arr2 := [...]int{1, 2, 3, 4, 5, 6}
ss1 := arr2[:2]
ss2 := append(ss1, 100)
fmt.Println(ss2)
fmt.Println(arr2)
sss1 := []int{1, 2, 3, 4}
sss2 := make([]int, 16)
sss3 := make([]int, 10, 32)
fmt.Println(sss1, len(sss1), cap(sss1))
fmt.Println(sss2, len(sss2), cap(sss2))
fmt.Println(sss3, len(sss3), cap(sss3))
copy(sss1, sss3)
fmt.Println(sss1, len(sss1), cap(sss1))
fmt.Println(sss3, len(sss3), cap(sss3))
容器map
func main() {
m := map[string]string{
"name": "ming",
"age": "18",
}
fmt.Println(m)
m2 := make(map[string]string)
var m3 map[string]int
fmt.Println(m2, m3)
for k, v := range m {
fmt.Println(k, v)
}
name := m["name"]
fmt.Println(name)
if age, ok := m["age"]; ok {
fmt.Println(age)
}
delete(m, "age")
fmt.Println(m)
}
