今天笔试的时候,遇到一个以前都没有见过切片知识点。
a := [...]int{1,2,3}
b := a
b[1] = 10
fmt.Println(a)
打印的结果是?
[1,2,3]
package main
import "fmt"
func main() {
a := [...]int{1,2,3}
b := a
c := b
b[1] = 100
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
输出内容:
[1 2 3]
[1 100 3]
[1 2 3]
也就是说,从这个a切片赋值是非引用,而是分配新的内存,并将a切片的值复制给这个新切片
网友评论