91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

第九章 九析帶你輕松完爆 go - 切片 slice

發布時間:2020-03-08 12:25:48 來源:網絡 閱讀:258 作者:九析 欄目:編程語言

系列文章:


總目錄索引:九析帶你輕松完爆 go 系列教程

目錄

1 前言

2 切片的聲明

3 切片的初始化

????3.1 先聲明后初始化

????3.2 聲明并初始化

4 切片和數組的關系

????4.1 數組轉化為切片

????4.2 切片的長度

????4.3 切片的容量

????4.4 切片的切片


1 前言

????????如果你對博客有任何疑問或者想更深入學習 go,請加微信群,我們一起進步:

第九章 九析帶你輕松完爆 go - 切片 slice


2 切片的聲明

????????切片在 go 語言中是一種特殊的數據類型,你不要覺得它難學,你只需要將它看成一種特殊的數組類型即可。它跟數組區別在于,數組聲明時需要指定長度,但切片并不指定長度。如下所示:

package main


import "fmt"


func main() {

???? var slice []int # 切片

???? var arr [2]int # 數組

???? fmt.Println(slice)

???? fmt.Println(arr)

}

????????程序執行結果如下:

[]

[0 0]


3 切片的初始化

????????切片初始化跟數組初始化沒任何不同。分為先聲明后初始化和同時聲明并初始化

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 切片和數組的關系

????????切片和數組的關系從某種程度上類似數據庫中的視圖(view)和表(table)的關系。下面的例子會印證此說法。

4.1 數組轉化為切片

package main


import "fmt"


func main() {

???? var arr [6]int = [6]int{1, 3, 5, 7, 9, 11} # 數組定義并初始化

???? var slice = arr[0:6] # 將數組 arr 進行切片,形成切片數據類型,切片的長度此例為 [0, 6)(左閉右開)

???? fmt.Println(arr)

???? fmt.Println(slice)

}

????????執行結果:

[1 3 5 7 9 11]

[1 3 5 7 9 11]

4.2 切片的長度

????????切片長度可通過 len() 函數獲得:

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,就是元素個數

}

4.3 切片的容量

????????切片容量可通過函數 cap() 獲得。函數結果類似 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() 值等于數組從索引(0)到最后元素的個數。


???? var slice2 = arr[3:6] # 該切片從索引 3 開始。

???? fmt.Println(cap(slice2)) # cap() 值等于數組從索引(3)到最后元素的個數


????var slice3 = arr[2:4]

????fmt.Println(cap(slice3))

}

????????執行結果:

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)

}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆化县| 龙岩市| 黔西| 老河口市| 冕宁县| 班戈县| 林州市| 莱芜市| 阿拉善左旗| 晋江市| 巴彦县| 改则县| 宝山区| 甘孜县| 静海县| 枣庄市| 万源市| 若羌县| 沛县| 望奎县| 宁乡县| 淮滨县| 乌什县| 汾西县| 辽宁省| 芜湖市| 济南市| 井冈山市| 荣成市| 江西省| 法库县| 滦平县| 瑞丽市| 广东省| 漳州市| 都兰县| 河池市| 青浦区| 理塘县| 砀山县| 子洲县|