国产探花免费观看_亚洲丰满少妇自慰呻吟_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語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 财经| 斗六市| 金山区| 靖远县| 景洪市| 封开县| 安顺市| 湄潭县| 从化市| 兴化市| 和静县| 石台县| 太康县| 达孜县| 延寿县| 太湖县| 南丰县| 公主岭市| 长泰县| 莱州市| 阿巴嘎旗| 红河县| 共和县| 云梦县| 怀宁县| 常宁市| 红桥区| 上栗县| 延寿县| 长宁区| 菏泽市| 武宣县| 阆中市| 汾西县| 孝义市| 古丈县| 屏东县| 清苑县| 福建省| 临湘市| 六安市|