基礎(chǔ)篇
package main
import "fmt"
func main() {
? /*
? 數(shù)據(jù)類型:
? ? 基本類型:整數(shù)兜粘,浮點袖扛,布爾砸泛,字符串
? ? 復(fù)合類型:array,slice,map,struct,pointer,function,channel...
? 數(shù)組:
? ? 1.概念:存儲一組相同類型的數(shù)據(jù)結(jié)構(gòu)
? ? ? 理解為容器,存儲一組數(shù)據(jù)
? ? 2.語法:
? ? ? var 數(shù)組名 [長度] 數(shù)據(jù)類型
? ? ? var 數(shù)組名 = [長度] 數(shù)據(jù)類型{元素1蛆封,元素2唇礁。。惨篱。}
? ? ? 數(shù)組名 :=[盏筐。。砸讳。]數(shù)據(jù)類型{元素琢融。。簿寂。}
? ? 3.通過下標訪問
? ? ? 下標吏奸,也叫索引:index
? ? ? 默認從0開始的整數(shù),直到長度減1
? ? ? 數(shù)組名[index]
? ? ? ? 賦值
? ? ? ? 取值
? ? ? 不能越界:[0,長度-1]
? ? 4.長度和容量:go語言的內(nèi)置函數(shù)
? ? ? len()
? */
? //step1:創(chuàng)建數(shù)組
? var arr1 [4] int
? //step2:數(shù)組的訪問
? arr1[0] = 1
? arr1[1] = 2
? arr1[2] = 13
? arr1[3] = 41
? fmt.Println(arr1[0])//打印第一個數(shù)值
? fmt.Println(arr1[2])//打印第一個數(shù)值
? //fmt.Println(arr1[4])//打印第一個數(shù)值
? // invalid array index 4 (out of bounds for 4-element array)
? fmt.Println("數(shù)組的長度:",len(arr1))//容器中實際存儲的數(shù)據(jù)量
? fmt.Println("數(shù)組的容量:",cap(arr1))//容器中能夠存儲的最大數(shù)量
? //因為數(shù)組定長陶耍,所以長度和容量相同
? arr1[0] = 100
? fmt.Println(arr1[0])
? //數(shù)組的其他創(chuàng)建方式
? var a [4] int //同 var a = [4] int
? fmt.Println(a)
? var b =[4]int{1,2,3,4}
? fmt.Println(b)
? var c =[5]int{1,2,3}
? fmt.Println(c)
? var d = [5]int{1:2,3:4}
? fmt.Println(d)
? var e = [5]string{"rose","王二狗","ruby"}
? fmt.Println(e)
? f := [...]int{1,2,3,4}
? fmt.Println(f)
? fmt.Println(len(f))
? g :=[...]int{1:3,3:4}
? fmt.Println(g)
? fmt.Println(len(g))
}
運行輸出:
1
13
數(shù)組的長度:4
數(shù)組的容量:4
100
[0 0 0 0]
[1 2 3 4]
[1 2 3 0 0]
[0 2 0 4 0]
[rose 王二狗 ruby? ]
[1 2 3 4]
4
[0 3 0 4]
4
Process finished with exit code 0
遍歷數(shù)組:
package main
import "fmt"
func main() {
? /*
? 數(shù)組的遍歷:
? ? 一次訪問數(shù)組中的元素
? ? 方法一:arr[0],arr[1],arr[2]...
? ? 方法二:通過循環(huán)奋蔚,配合下標
? ? ? for i:=0;i<len(arr);i++{
? ? ? ? arr[i]
? ? ? }
? ? 方法三:使用range
? ? ? range,詞義“范圍”
? ? ? 不需要操作數(shù)組的下標,到達數(shù)據(jù)的末尾烈钞,自動結(jié)束for range循環(huán)泊碑。
? */
? arr1 := [5]int{1,2,3,4,5}
? fmt.Println(arr1[0])
? fmt.Println(arr1[1])
? fmt.Println(arr1[2])
? fmt.Println(arr1[3])
? fmt.Println(arr1[4])
? fmt.Println("____________________________")
? for i :=0;i<len(arr1);i++{
? ? fmt.Println(arr1[i])
? }
? fmt.Println("_____________________________")
? for index,value := range arr1{
? ? fmt.Printf("下標是:%d,數(shù)值是:%d,\n",index,value)
? }
}
運行輸出:
1
2
3
4
5
____________________________
1
2
3
4
5
_____________________________
下標是:0,數(shù)值是:1,
下標是:1,數(shù)值是:2,
下標是:2,數(shù)值是:3,
下標是:3,數(shù)值是:4,
下標是:4,數(shù)值是:5,
Process finished with exit code 0
讀完點個贊,給我的堅持更新注入新的活力毯欣。
2022.05.11日更67/365 天
公眾號:3天時間
往期同類文章:
GO學(xué)習(xí) goto語句和隨機函數(shù)
GO學(xué)習(xí) for循環(huán)練習(xí)
GO學(xué)習(xí) 多重for循環(huán)
GO學(xué)習(xí) for循環(huán)