本文主要介绍了go语言中[]*int和*[]int的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
[]*int是一个指向指针的切片,本质上是切片,只不过切片里面存放的元素是指针;
*[]int是一个指向切片的指针,本质上是指针,可以用*来获取切片;
简易记法:从右往左读,最后一个符号是[],说明是切片,倒数第二个符号是*说明切片里是指针;从右往左读,最后一个符号是*,说明是指针,倒数第二个符号是[]说明指针指向一个切片类型。
对于[]*int,可以使用for _, ptr := range slice获得切片里面的指针,并通过*ptr得到切片里的元素(本质上是指针/地址)对应的值。
对于*[]int,可以使用*slice获得整个切片。
[]*int
func main() {
var a = 1
var b = 2
var slice []*int
slice = append(slice, &a)
slice = append(slice, &b)
for _, ptr := range slice {
fmt.Print(*ptr, " ")
}
}
输出:1 2
*[]int
func main() {
var a = 1
var b = 2
var slice *[]int
arr := []int{a, b}
slice = &arr
fmt.Println(*slice)
}
输出:[1 2]
到此这篇关于go语言中[]*int和*[]int的具体使用的文章就介绍到这了,希望可以帮到你