如何在 Golang 中获取数组或切片的大小?

go programmingserver side programmingprogramming

如果我们想要获取数组或切片的大小,我们可以使用 Go 提供的内置 len() 函数。

示例 1

首先让我们探索如何将 len 函数与数组一起使用。请考虑以下代码。

package main

import (
   "fmt"
)

func main() {
   fmt.Println("在主函数内部")

   arr := [3]int{1,2,3}

   fmt.Println("数组的长度为:", len(arr))
}

在上面的代码中,我们在定义为 arr 的数组上使用 len 函数。

输出

如果我们在上面的代码上运行命令 go run main.go,那么我们将得到以下输出。

在主函数内部
数组的长度为:3

如何获取切片的容量?

现在我们知道了 len 函数在数组的情况下是如何工作的,让我们来探索一下我们将使用相同函数以及 cap 函数的情况。

使用 cap() 函数获取切片的容量。数组的长度和数组的容量之间存在非常明显的区别。

切片的长度基本上是数组中存在的元素数。另一方面,容量是底层数组中元素的数量,我们从切片中的第一个元素开始计数。

示例 2

现在,让我们考虑一个例子,我们将使用切片的 len()cap() 函数。

考虑下面显示的代码。

package main

import (
   "fmt"
)

func main() {
   sl := []int{2, 3, 5, 7, 10, 15}
   check(sl)

   sl = sl[2:]
   check(sl)

   sl = sl[:0]
   check(sl)
}

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

在上面的代码中,我们在定义为 sl 的切片上使用了 lencap 函数。

输出

如果我们在上面的代码上运行命令 go run main.go,那么我们将得到以下输出。

len=6 cap=6 [2 3 5 7 10 15]
len=4 cap=4 [5 7 10 15]
len=0 cap=4 []

相关文章