Go语言拥有许多内置函数,这些函数可以直接使用,无需导入任何包。以下是一些常用的Go语言内置函数:
- len:用于获取切片、数组、映射、通道或字符串的长度。
|
slice := []int{1, 2, 3, 4, 5} |
|
length := len(slice) |
- cap:用于获取切片或通道的容量。对于数组,cap的结果总是和len一样,因为数组的长度是固定的。
|
slice := make([]int, 5, 10) |
|
capacity := cap(slice) |
- new:用于分配内存并返回指向该类型零值的指针。
- make:用于初始化切片、映射和通道,并返回已初始化的(非零)值。
- append:用于向切片追加一个或多个元素,并返回修改后的切片。
|
slice := []int{1, 2, 3} |
|
slice = append(slice, 4, 5) |
- copy:用于将一个切片的内容复制到另一个切片。
|
src := []int{1, 2, 3} |
|
dst := make([]int, 3) |
|
copy(dst, src) |
- delete:用于从映射中删除一个键值对。
|
m := map[string]int{"apple": 1, "banana": 2} |
|
delete(m, "apple") |
- close:用于关闭通道,防止再向通道发送数据。
|
ch := make(chan int) |
|
|
|
close(ch) |
- panic 和 recover:用于错误处理。
panic
会中断当前的函数执行,并开始逐级向上层调用函数返回,直到被 recover
捕获或到达最顶层。recover
用于在 defer
函数中捕获 panic
,并阻止其继续向上层传播。
|
func main() { |
|
defer func() { |
|
if r := recover(); r != nil { |
|
fmt.Println("Recovered in main", r) |
|
} |
|
}() |
|
panic("a problem") |
|
} |
- real 和 imag:用于获取复数的实部和虚部。
|
c := complex(3, 4) |
|
realPart := real(c) |
|
imagPart := imag(c) |
- complex:用于根据给定的实部和虚部构造一个复数。
除了上述函数,Go语言还有很多其他内置函数,用于执行不同的任务,比如类型转换、内存分配、字符串处理等。要了解完整的内置函数列表,可以查阅Go语言的官方文档。