0
点赞
收藏
分享

微信扫一扫

Go语言学习笔记(六)

ZGtheGreat 2022-02-14 阅读 163

Go语言学习笔记(六)


一、切片的使用

切片不需要说明长度。

可使用 make() 函数来创建切片:

var slice []int = make([]int, 3)

可以简写为

slice := make([]int, 3)

对数组arr的引用

slice := arr[startIndex:endIndex] 

二.len() 和 cap() 函数

切片是可索引的,并且可以由 len() 方法获取长度。

切片提供了计算容量的方法 cap() 可以测量切片最长可以达到多少。

以下为具体实例:

package main

import "fmt"

func main() {
   var numbers = make([]int,3,5)

   printSlice(numbers)
}

func printSlice(x []int){
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

其输出结果为

len=3 cap=5 slice=[0 0 0]

切片未输入被称为空切片(nill)默认值为0

package main

import "fmt"

func main() {
   var numbers []int

   printSlice(numbers)

   if(numbers == nil){
      fmt.Printf("切片是空的")
   }
}

func printSlice(x []int){
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

输出结果为

len=0 cap=0 slice=[]

三.切片的截取

通过设置上下限来截取切片

package main

import "fmt"

func main() {
   numbers := []int{0,1,2,3,4,5,6,7,8}  
   printSlice(numbers)
   fmt.Println("numbers[1:4] ==", numbers[1:4])
   fmt.Println("numbers[:3] ==", numbers[:3])
   fmt.Println("numbers[4:] ==", numbers[4:])
   numbers1 := make([]int,0,5)
   printSlice(numbers1)
   number2 := numbers[:2]
   printSlice(number2)
   number3 := numbers[2:5]
   printSlice(number3)

}
func printSlice(x []int){
   fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

输出结果为:

len=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]
numbers == [0 1 2 3 4 5 6 7 8]
numbers[1:4] == [1 2 3]
numbers[:3] == [0 1 2]
numbers[4:] == [4 5 6 7 8]
len=0 cap=5 slice=[]
len=2 cap=9 slice=[0 1]
len=3 cap=7 slice=[2 3 4]
举报

相关推荐

0 条评论