2022-07-16:以下go语言代码输出什么?A:[];B:[5];C:[5 0 0 0 0];D:[0 0 0 0 0]。
package main
import (
"fmt"
)
func main() {
a := make([]int, 0, 5)
addElem(a, 5)
fmt.Println(a)
}
func addElem(a []int, i int) {
a = append(a, 5)
}
答案选A。可以简单的理解切片本身是结构体,参数传递只是结构体复制传递。切片在大多数情况下,只能修改元素,不能删除或者新增元素。