如何在 Golang 中获取数组或切片的长度?


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

示例 1

让我们首先探讨如何在数组中使用 **len** 函数。请考虑以下代码。

package main

import (
   "fmt"
)

func main() {
   fmt.Println("Inside the main function")

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

   fmt.Println("The length of the array is:", len(arr))
}

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

输出

如果我们在上述代码上运行命令 **go run main.go**,则将得到以下输出。

Inside the main function
The length of the array is: 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** 的切片使用了 **len** 和 **cap** 函数。

输出

如果我们在上述代码上运行命令 **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 []

更新于: 2021年11月1日

783 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告