登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-11 11:48:36 419浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《如何附加到由指针标识的数组》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

以下代码出现段错误 - 应该如何表述?

package main

func main() {
    var a *[]int
    *a = make([]int, 0)
    *a = append(*a, 1)
}

解决方案


使您的指针示例正常工作

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

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

var a *[]int
a = new([]int)
*a = make([]int, 0)
*a = append(*a, 1)

另一种选择是使用切片 composite literal,并获取其地址:

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)

理论要掌握,实操不能落!以上关于《如何附加到由指针标识的数组》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>