dongsi7759 2018-05-06 15:23 采纳率: 100%
浏览 1162
已采纳

go中* [] Type和[] * Type有什么区别

Let's say we have a struct named Person and it's held by a struct named 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. What's exactly is the meaning of []*Person and *[]Person?

  2. How can I retrieve the element's value of these slice?

I'm more familiar with C so it's appreciated if you can explain this in C

  • 写回答

1条回答 默认 最新

  • douji6735 2018-05-06 15:24
    关注
    • []*Type is a slice of pointers to Type.
    • *[]Type is a pointer to a slice of Type.

    To deference an individual element from a slice of pointers:

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

    To dereference an individual element from a pointer to a slice:

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

    And for bonus points, to deference an individual element from a pointer to a slice of pointers:

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

    See playground.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装