系列文章:
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及玻璃鋼坐凳等,在網(wǎng)站建設(shè)、成都全網(wǎng)營銷推廣、WAP手機網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。總目錄索引:九析帶你輕松完爆 go 系列教程
目錄
1 前言
2 切片的聲明
3 切片的初始化
3.1 先聲明后初始化
3.2 聲明并初始化
4 切片和數(shù)組的關(guān)系
4.1 數(shù)組轉(zhuǎn)化為切片
4.2 切片的長度
4.3 切片的容量
4.4 切片的切片
1 前言
如果你對博客有任何疑問或者想更深入學(xué)習(xí) go,請加微信群,我們一起進步:
2 切片的聲明
切片在 go 語言中是一種特殊的數(shù)據(jù)類型,你不要覺得它難學(xué),你只需要將它看成一種特殊的數(shù)組類型即可。它跟數(shù)組區(qū)別在于,數(shù)組聲明時需要指定長度,但切片并不指定長度。如下所示:
package main
import "fmt"
func main() {
var slice []int # 切片
var arr [2]int # 數(shù)組
fmt.Println(slice)
fmt.Println(arr)
}
程序執(zhí)行結(jié)果如下:
[]
[0 0]
3 切片的初始化
切片初始化跟數(shù)組初始化沒任何不同。分為先聲明后初始化和同時聲明并初始化
3.1 先聲明后初始化
package main
import "fmt"
func main() {
var slice []int
slice = []int{2, 3}
fmt.Println(slice)
}
3.2 聲明并初始化
package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
fmt.Println(slice)
}
4 切片和數(shù)組的關(guān)系
切片和數(shù)組的關(guān)系從某種程度上類似數(shù)據(jù)庫中的視圖(view)和表(table)的關(guān)系。下面的例子會印證此說法。
4.1 數(shù)組轉(zhuǎn)化為切片
package main
import "fmt"
func main() {
var arr [6]int = [6]int{1, 3, 5, 7, 9, 11} # 數(shù)組定義并初始化
var slice = arr[0:6] # 將數(shù)組 arr 進行切片,形成切片數(shù)據(jù)類型,切片的長度此例為 [0, 6)(左閉右開)
fmt.Println(arr)
fmt.Println(slice)
}
執(zhí)行結(jié)果:
[1 3 5 7 9 11]
[1 3 5 7 9 11]
4.2 切片的長度
切片長度可通過 len() 函數(shù)獲得:
package main
import "fmt"
func main() {
var arr [6]int = [6]int{1, 3, 5, 7, 9, 11}
var slice = arr[0:6]
fmt.Println(arr)
fmt.Println(slice)
fmt.Println(len(slice)) # 長度為6,就是元素個數(shù)
}
4.3 切片的容量
切片容量可通過函數(shù) cap() 獲得。函數(shù)結(jié)果類似 java 語言中 string.substring(index, len(string)) 的值。樣例代碼如下:
package main
import "fmt"
func main() {
var arr [6]int = [6]int{1, 3, 5, 7, 9, 11}
var slice1 = arr[0:3] # 該切片從索引 0 開始。
fmt.Println(cap(slice1)) # cap() 值等于數(shù)組從索引(0)到最后元素的個數(shù)。
var slice2 = arr[3:6] # 該切片從索引 3 開始。
fmt.Println(cap(slice2)) # cap() 值等于數(shù)組從索引(3)到最后元素的個數(shù)
var slice3 = arr[2:4]
fmt.Println(cap(slice3))
}
執(zhí)行結(jié)果:
6
3
4
4.4 切片的切片
package main
import "fmt"
func main() {
var arr [6]int = [6]int{1, 3, 5, 7, 9, 11}
var slice = arr[2:5]
var sliceOfSlice = slice[2:]
fmt.Println(arr)
fmt.Println(slice)
fmt.Println(sliceOfSlice)
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。