2 回答

TA贡献1818条经验 获得超7个赞
这与使用值或指针相同。int*int
var p *int
您必须首先初始化它,例如使用内置:new()
p = new(int)
分配给指向值:
*p = 3
fmt.Println(*p)
指针切片也是如此:您首先必须初始化它,例如使用内置:new()
book.Categories = new([]Category)
并且您使用以下命令取消引用指针:*
*book.Categories = append(*book.Categories, Category{
Id: 10,
Name: "Vanaraj",
})
在Go Playground上尝试一下。
请注意,切片是已包含指向支持数组的指针的切片标头。因此,使用指向切片的指针是非常罕见的,通常是不必要的,只会使事情复杂化。

TA贡献1802条经验 获得超5个赞
func main() {
var book Book
book.Id = 1
book.Name = "Vanaraj"
book.Categories = new([]Category)
for i := 0; i < 10; i++ {
*book.Categories = append(*book.Categories, Category{
Id: 10,
Name: "Vanaraj",
})
}
fmt.Println(book)}
欧普特 :{1 Vanaraj 0xc00000c030}
并打印您可以使用的类别fmt.Println(book.Categories)
- 2 回答
- 0 关注
- 121 浏览
添加回答
举报