长度和容量方法
理解len()函数
在Go语言中,len()
函数是确定数组大小的主要方法。它返回数组中的元素数量。
基本长度获取
package main
import "fmt"
func main() {
// 数组声明
numbers := [5]int{10, 20, 30, 40, 50}
// 获取数组长度
arrayLength := len(numbers)
fmt.Println("数组长度:", arrayLength) // 输出: 5
}
长度与容量
graph TD
A[数组大小方法] --> B[len()函数]
A --> C[cap()函数]
B --> D[返回元素数量]
C --> E[返回总分配容量]
长度方法比较
方法 |
用途 |
返回值 |
适用于 |
len() |
元素计数 |
元素数量 |
数组、切片、映射 |
cap() |
容量 |
总分配容量 |
切片、数组 |
实际长度检查示例
多种数组长度场景
package main
import "fmt"
func main() {
// 固定大小数组
fruits := [3]string{"apple", "banana", "orange"}
fmt.Println("水果数组长度:", len(fruits))
// 零长度数组
emptyArray := [0]int{}
fmt.Println("空数组长度:", len(emptyArray))
// 多维数组长度
matrix := [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println("矩阵行数:", len(matrix))
fmt.Println("矩阵列数:", len(matrix[0]))
}
高级长度检查技术
动态长度计算
func calculateTotalSize(arrays...[]int) int {
totalSize := 0
for _, arr := range arrays {
totalSize += len(arr)
}
return totalSize
}
func main() {
arr1 := []int{1, 2, 3}
arr2 := []int{4, 5}
totalArraySize := calculateTotalSize(arr1, arr2)
fmt.Println("总数组大小:", totalArraySize)
}
性能考虑
len()
是常量时间操作
- 计算开销极小
- 对大型数组和切片高效
常见陷阱
- 检查
nil
切片/数组的长度会导致运行时恐慌
- 在长度检查之前始终验证数组/切片
LabEx建议
在Go语言中处理数组时,始终使用len()
来确定大小,并实现适当的错误处理以确保代码健壮。