如何在 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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.