Slice 有更多细节,很容易出错。
易错点
下面是一段代码:
package main
import "fmt"
func main() {
arr := make([]int, 3, 5)
arr[0], arr[1], arr[2] = 2, 7, 9
brr := append(arr, 8)
brr = append(brr, 8)
fmt.Println("######################### Stage 1 #########################")
fmt.Println(arr)
fmt.Println(brr)
fmt.Println("######################### Stage 2 #########################")
arr[0] = 4
fmt.Println(brr[0])
brr = append(brr, 8)
arr[1] = 5
fmt.Println(brr[1])
fmt.Println(len(brr), cap(brr))
fmt.Println(len(arr), cap(arr))
}
结果应该如下:
######################### Stage 1 #########################
[2 7 9]
[2 7 9 8 8]
######################### Stage 2 #########################
4
7
6 10
3 5
Process finished with the exit code 0
for 和 slice
package main
import "fmt"
func main() {
arr := make([]int, 3, 5)
arr[0], arr[1], arr[2] = 2, 7, 9
for i, ele := range arr {
fmt.Println(i, ele)
}
}