这种语法是指向切片还是指针切片的指针?

时间:2015-07-08 22:57:38

标签: go

在查看this blog post之后,我仍然不清楚以下语法是指一片指针还是指向切片的指针。

foo  []*int

这是哪一个,这个案例的一般经验法则是什么?

2 个答案:

答案 0 :(得分:8)

这是一个指针片段,只是从左到右阅读:([])指向(*)整数的一片(int)指针。另一方面,*[]int将是(*)指向([])一片(int)整数的指针。

答案 1 :(得分:2)

这是一个int指针。 []括号位于类型之前,因此*int是示例中的类型,而*[]int是指向int数组的指针,* [] * int是指向int指针数组的指针

就风格问题而言,我通常会避免使用*[]int语法或类似foo := &[]int{}之类的语句,这会导致foo成为指向新int数组开头的指针。