为了账号安全,请及时绑定邮箱和手机立即绑定

我如何追加到由指针标识的数组

我如何追加到由指针标识的数组

慕尼黑8549860 2021-04-06 21:18:57
以下代码段错误-应该如何措辞?package mainfunc main() {    var a *[]int    *a = make([]int, 0)    *a = append(*a, 1)}
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

使您的指针示例正常工作

声明后,您的指针变量将为,nil,因此您无法设置指向的值(它尚未指向任何位置)。


您必须首先为指向的值分配内存,例如,使用内置new()函数:


var a *[]int

a = new([]int)

*a = make([]int, 0)

*a = append(*a, 1)

另一种选择是使用切片复合文字,并获取其地址:


var a *[]int

a = &[]int{}

*a = make([]int, 0)

*a = append(*a, 1)

另一种选择是使用切片类型的另一个变量[]int,并将其地址分配给a:


var a *[]int

var b []int

a = &b

*a = make([]int, 0)

*a = append(*a, 1)

放弃指针

但是要知道,使用切片不需要指针。您可以只将返回值分配给make()非指针切片变量:


var a []int

a = make([]int, 0)

a = append(a, 1)


查看完整回答
反对 回复 2021-04-19
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信