1、go语言的数组和python的列表不一样,python的列表没有限定类型,而go的数组限定的类型,理由是这样的,请看下面的图

 go语言之数组 随笔

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2、go语言的数组

package main

import "fmt"

//go语言的数组类似python中的列表

//申明数组
//var 数组名[数组长度] 数组类型


//数组的长度定好之后不能修改


//go语言的数组定义了类型,就只能存储这种类型,不能存储其他类型
func main() {
	//首先定义一个一维数组

	//定义一个int类型的数组

	var arr1 [5] int


	//申明加赋值数组
	arr2 := [5]int{1,2,3,4,5}

	//可以省略大小
	arr3 := [...]int{1,2,3,4,5}


	arr4 := [10]int{1,2,3,4,5}

	fmt.Println(arr1,arr2,arr3,arr4)

	//[0 0 0 0 0] [1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5 0 0 0 0 0]




	//定义一个二维数组,四行五列的数组,一般也用的比较少

	var grid [4][5] int
	fmt.Println(grid)
	//[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]


	//数据的遍历,一个for一个range
	//方式1
	for i :=0;i < len(arr3);i++{
		fmt.Println(i,arr3[i])
	}


	//方式2
	for i := range arr3 {
		fmt.Println(i,arr3[i])
	}

	for i,v := range arr3 {
		fmt.Println(i,v)
	}



}

  

3、go语言的数组是值类型,不是引用

package main

import "fmt"

func printArr(arr [5]int)  {
	arr[0] = 100

	fmt.Println(arr)

}

func main() {
	//var arr1 [5] int

	//printArr(arr1)
	//[100 0 0 0 0]
	//fmt.Println(arr1)
	//[0 0 0 0 0]


	//报错
	//arr2 := [3]int{1,2,3}
	//printArr(arr2)
//	.\test20.go:23:10: cannot use arr2 (type [3]int) as type [5]int in argument to printAr

	arr3 := [...]int{1,2,3,4,5}

	printArr(arr3)
	//[100 2 3 4 5]

	fmt.Println(arr3)
	//[1 2 3 4 5]
}

  

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄