在 Go 中 *[]Type 和 []*Type 有什么区别

  • 本文关键字:Type 区别 Go go
  • 更新时间 :
  • 英文 :


假设我们有一个名为Person的结构,它由一个名为People的结构持有。

type Person {
Name string
age  int
}
type People {
City string
List []*Person //check this out
}
type People2 {
City string
List *[]Person //What's the difference?
}
  1. []*Person*[]Person到底是什么意思?

  2. 如何检索这些切片的元素值?

我对 C 更熟悉,所以如果您能用 C 解释这一点,我们将不胜感激

  • []*Type是指向Type的指针的一部分。
  • *[]Type是指向Type切片的指针。

要尊重指针切片中的单个元素,请执行以下操作:

var x []*Type
y := *x[0]

取消对单个元素的引用,从指向切片的指针:

var x *[]Type
y := (*x)[0]

对于奖励积分,要尊重单个元素从指针到指针切片:

var x *[]*Type
y := *(*x)[0]

见游乐场。

最新更新