如何在 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 []
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP