* []类型和[] *之间的区别是go

时间:2018-05-06 15:23:19

标签: go

我们假设我们有一个名为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? } 的结构保存。

[]*Person
  1. *[]PersonRx的含义究竟是什么?

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

  3. 我对C更熟悉,所以如果你能在C中解释这一点,我们表示赞赏

1 个答案:

答案 0 :(得分:4)

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

从一片指针中推断单个元素:

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

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

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

对于奖励积分,要从指向指针片段的指针中推导出单个元素:

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

请参阅playground