好久的沒有寫博客了,這段時間沒事研究了下go這門語言。
我們先介紹下go中的數組和切片的區別和用法
說了這么多 我們先來看段代碼吧
var arr1 [3]int var arr2 [3]int = [3]int{1, 2, 3} fmt.Println(arr1) fmt.Println(arr2)
我申明了兩個數組,初始化和沒初始化的
然后運行這段代碼輸出為[0 0 0] [1 2 3] 有沒有發現和其他語言不一樣的地方,細心的朋友應該已經發現了 在go語言里默認為0值
D:/program/GoLang/hello golang/src/b/b.exe [D:/program/GoLang/hello golang/src/b] [0 0 0] [1 2 3] 成功: 進程退出代碼 0.
然后我們再來看看切片,切片和數組很像。可以說是一種特殊數組
var slice []int = []int{3, 6} fmt.Println(slice) slice = append(slice, 1, 2, 3, 5, 8) fmt.Println(slice)
這里聲明了一個slice int類型的數組切片 切片的長度是可變的,我們可以通過append方法向里面添加同類型的值
運行代碼控制台 打印的和我們預想的完全一樣
D:/program/GoLang/hello golang/src/b/b.exe [D:/program/GoLang/hello golang/src/b] [3 6] [3 6 1 2 3 5 8] 成功: 進程退出代碼 0.
上面我們講述了切片和數組的用法,現在來看看他們的區別
fmt.Println("數組***********************************") var arr1 [3]int = [3]int{1, 2, 3} var arr2 [3]int = arr1 fmt.Println(arr1, arr2) arr2[0] = 10002 fmt.Println(arr1, arr2) fmt.Println("切片***********************************") var slice1 []int = []int{1, 2, 3} var slice2 []int = slice1 fmt.Println(slice1, slice2) slice2[0] = 10002 fmt.Println(slice1, slice2)
輸出結果如下 可以看出數組是值拷貝而切片是引用
D:/program/GoLang/hello golang/src/b/b.exe [D:/program/GoLang/hello golang/src/b] 數組*********************************** [1 2 3] [1 2 3] [1 2 3] [10002 2 3] 切片*********************************** [1 2 3] [1 2 3] [10002 2 3] [10002 2 3] 成功: 進程退出代碼 0.
好了今天就寫怎么多,喜歡的朋友幫忙點個贊