數(shù)組
數(shù)組的長(zhǎng)度是類型的一部分
數(shù)組定義和初始化
var 數(shù)組變量名 [元素?cái)?shù)量]T
vara[3]int//定義一個(gè)長(zhǎng)度為3的整型數(shù)組aa[0]=80a[1]=90a[2]=10vararr[3]intvararr1[3]stringvararr2[3]int{1,3,4}arr3:=[3]string{"php","nodejs","golang"}fmt.Println(arr,arr2,arr2)//[0 0 0] [? ] [1 3 4]
注意:數(shù)組的長(zhǎng)度必須是常量宦焦,并且長(zhǎng)度是數(shù)組類型的一部分刽虹。一旦定義闯狱,長(zhǎng)度不能變豺撑。5[int]和4[int]是不同的類型
vararr1[4]intvararr2[5]intfmt.Printf("arr1=%T arr2=%T",arr1,arr2)//arr1:[4]int arr2:[5]int
編譯器根據(jù)初始值的個(gè)數(shù)自行推斷數(shù)組長(zhǎng)度
varnumArray=[...]int{1,2}varcityArray=[...]string{"php","nodejs","golang"}
指定索引值的方式來(lái)初始化數(shù)組
funcmain(){a:=[...]int{1:1,3:5}fmt.Pringln(len(arr))//4}
數(shù)組的循環(huán)遍歷
for
vararr=[3]int{23,24,5}fori:=0;i<len(arr);i++{fmt.Println(arr[i])}
for range
vararr=[3]int{23,24,5}fork,v:=rangearr{//k對(duì)應(yīng)下標(biāo)进倍,v對(duì)應(yīng)值fmt.Println(v)}
值類型和引用類型
值類型
基本數(shù)據(jù)類型和數(shù)組都是值類型
vara=10b:=a a=20fmt.Println(a,b)//20 10vararr1=[...]int{1,2,3}arr:=arr1arr1[0]=11fmt.Println(arr1,arr2)//[11 2 3]? [1 2 3]
引用類型(切片)
vararr1=[...]int{1,2,3}arr2:=arr1arr1[0]=11fmt.Println(arr1,arr2)//[11 2 3] [11 2 3]
多維數(shù)組
Go語(yǔ)言是支持多維數(shù)組的俩块,但通常使用時(shí)不會(huì)超過(guò)二維
var 數(shù)組變量名 [元素?cái)?shù)量][元素?cái)?shù)量]T
//創(chuàng)建一個(gè)三行兩列的數(shù)組vararr=[3][2]string{{"北京","上海"},{"廣州","深圳"},{"成都","重慶"}}for_,v1:=rangearr{for_,v2:=rangev1{fmt.Println(v2)}}fori:=0;i<len(arr);i++{forj:=0;j<len(arr[i]);j++{fmt.Println(arr[i][j])}}
多維數(shù)組只有在第一層可以使用...來(lái)讓編譯器推導(dǎo)數(shù)組長(zhǎng)度
arr:=[...][2]string{{"北京","上海"},{"廣州","深圳"},{"成都","重慶"}}
作者:learninginto
鏈接:http://www.reibang.com/p/595240fb6b24
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有森篷。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)酝陈,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處帜矾。