gpt4 book ai didi

pointers - 为什么不能将指针附加到数组?

转载 作者:IT王子 更新时间:2023-10-29 01:19:26 24 4
gpt4 key购买 nike

package main

import "fmt"

type Circle struct {
x string
}

func main() {
circle := Circle{x: "blah"}
results := make([]*Circle, 1)
results = append(results, &circle)
fmt.Printf("Here: %s\n", results[0].x)
}

如果我将行 results = append(results, &circle) 更改为 results[0] = &circle 就可以正常工作。找不到任何原因说明为什么会这样。

最佳答案

可以,只是你追加到 slice 上,这意味着你添加的元素在results[1]中,而results[ 0] 是一个 nil 指针(指针的默认值)。

你可以做 results := make([]*Circle, 0, 1) 来给它一个容量 1 但长度为零,或者你可以做 results := []*Circle{}(最紧凑),或者您可以简单地保留分配给 results[0] 的版本,因为它工作得很好。

关于pointers - 为什么不能将指针附加到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com