Go面试必考题目之slice篇

deletelazy · · 1407 次点击
Assign1里的s是相当于一个指针的拷贝,和main里的s是指向同一块内存的 所以在Assign1里修改s的值是会改变的main里的s的 但是Assign1里 ``` s = []int{6, 6, 6} ``` 就相当于Assign1里的指针s指向一个新的slice,只是指针改变了指向,内存里的值是没有改变的
#5
更多评论
知识点2和3的代码输出注释错了
#1
func main() { s := []int{1, 2, 3} fmt.Println(s, len(s), cap(s)) // 输出:[1, 2, 3] 3 3 a := s s = append(s, 4) // 超过了原来数组的容量 s[0] = 999 fmt.Println(s, len(s), cap(s)) // 输出:[1, 2, 3] 4 6 fmt.Println(a,len(s),cap(s)) // 输出:[1, 2, 3] 3 3 } 认真检查一下
#2