国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Go語言中slice的用法實例分析

2020-04-01 19:19:34
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言中slice的用法,實例分析了slice的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了Go語言中slice的用法。分享給大家供大家參考。具體如下:

slice 指向數組的值,并且同時包含了長度信息。
[]T 是一個元素類型為 T 的 slice。

復制代碼代碼如下:
package main
import "fmt"
func main() {
 p := []int{2, 3, 5, 7, 11, 13}
 fmt.Println("p ==", p)
 for i := 0; i < len(p); i++ {
  fmt.Printf("p[%d] == %d/n",
   i, p[i])
 }
}

 

slice 可以重新切片,創建一個新的 slice 值指向相同的數組。

表達式

復制代碼代碼如下:
s[lo:hi]

表示從 lo 到 hi-1 的 slice 元素,含有兩端。 因此
復制代碼代碼如下:
s[lo:lo]

是空的,而
復制代碼代碼如下:
s[lo:lo+1]

有一個元素。
復制代碼代碼如下:
package main
import "fmt"
func main() {
 p := []int{2, 3, 5, 7, 11, 13}
 fmt.Println("p ==", p)
 fmt.Println("p[1:4] ==", p[1:4])
 // missing low index implies 0
 fmt.Println("p[:3] ==", p[:3])
 // missing high index implies len(s)
 fmt.Println("p[4:] ==", p[4:])
}

 

slice 由函數 make 創建。這會分配一個零長度的數組并且返回一個 slice 指向這個數組:

復制代碼代碼如下:
a := make([]int, 5)  // len(a)=5

        
slice 有長度和容量。slice 的容量是底層數組可以增長的最大長度。
為了指定容量,可傳遞第三個參數到 make:
復制代碼代碼如下:
b := make([]int, 0, 5)
// len(b)=0, cap(b)=5

        
slice 可以通過“重新切片”來擴容(增長到容量上限):
復制代碼代碼如下:
b = b[:cap(b)] // len(b)=5, cap(b)=5
b = b[1:]      // len(b)=4, cap(b)=4
package main
import "fmt"
func main() {
 a := make([]int, 5)
 printSlice("a", a)
 b := make([]int, 0, 5)
 printSlice("b", b)
 c := b[:2]
 printSlice("c", c)
 d := c[2:5]
 printSlice("d", d)
}
func printSlice(s string, x []int) {
 fmt.Printf("%s len=%d cap=%d %v/n",
  s, len(x), cap(x), x)
}

 

slice 的零值是 nil。

一個 nil 的 slice 的長度和容量是 0。

復制代碼代碼如下:
package main
import "fmt"
func main() {
 var z []int
 fmt.Println(z, len(z), cap(z))
 if z == nil {
  fmt.Println("nil!")
 }
}

 

希望本文所述對大家的Go語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 句容市| 五寨县| 同心县| 库尔勒市| 阿拉善左旗| 昌平区| 浏阳市| 延寿县| 阳城县| 米易县| 棋牌| 鄢陵县| 炎陵县| 海林市| 介休市| 东阿县| 星座| 武胜县| 阳东县| 石狮市| 偏关县| 宁化县| 南溪县| 中阳县| 凤台县| 梓潼县| 西丰县| 上思县| 湟中县| 泰顺县| 师宗县| 达尔| 偏关县| 广南县| 石城县| 盘锦市| 贵阳市| 苏尼特左旗| 四会市| 左贡县| 巧家县|