Golang数组指针和指针数组
数组很简单,有PHP基础一看就会,和PHP数组大不一样,不同的就是只有数字索引key,并且要指定类型
声明和初始化示例:
package main import "fmt" func main() { // 声明 var arr1 [5]int arr1 = [5]int{1,2,3,4,5} // 声明并初始化 var arr2 [5]int = [5]int{1,2,3,4,5} // 直接初始化,只能在函数里 arr3 := [5]int{1,2,3,4,5} fmt.Println(arr1, arr2, arr3) }
数组循环,主要是for 和 for range 具体网上搜索一些会有很多教程,本文就不详细说,现在来点难的:
数组指针和指针数组:
package main import "fmt" // 声明整形数组指针类型,表示该类型变量里存储的是一个数组的首地址 type arrPoint *[6]int func main() { // 声明并初始化数组,大小为6个元素整形数组,前5个数字是0,最后一个2 var a = [6]int{5: 2} var a1 = [6]int{5: 3} // 数组指针,变量的内容是数组的地址 var b arrPoint = &a var b1 arrPoint = &a1 // 指针数组,大小为2元素类型为arrPiont(指针),数组里存储元素的类型是arrPiont指针 c := [2]arrPoint{b, b1} // 也可以这样写 // c := [2]arrPoint(&a, &a1) for _, v := range c { fmt.Println(*v) } }
结果:
[0 0 0 0 0 2]
[0 0 0 0 0 3]