对new定义的切片进行append操作

题目:

下面这段代码能否通过编译,不能的话原因是什么;如果通过,输出什么。

1
2
3
4
5
func main() {
list := new([]int)
list = append(list, 1)
fmt.Println(list)
}

答案解析

​ 不能通过编译。因为 new 进行分配内存后返回的是一个指针类型,不能对指针指向 append 操作。可以使用 make 初始化之后再用。


对new定义的切片进行append操作
http://example.com/2023/08/30/Go每日一题/对new定义的切片进行append操作/
作者
Feng Tao
发布于
2023年8月30日
更新于
2023年8月30日
许可协议