Golang内置函数使用方法详细介绍
更新时间:2023-10-011. make()
make() 函数用于创建切片、映射和通道(channel)等动态尺寸的数据结构。它返回一个已初始化后的对象。通常,我们使用 make() 函数来初始化切片和映射,因为它们都需要分配内存。
package main import "fmt" func main() { // 创建一个切片 slice := make([]int, 5, 10) fmt.Println(slice) // 输出:[0 0 0 0 0] // 创建一个映射 m := make(map[string]int) m["one"] = 1 m["two"] = 2 fmt.Println(m) // 输出:map[one:1 two:2] // 创建一个通道 ch := make(chan int) fmt.Println(ch) // 输出:0xc000087060 }
2. append()
append() 函数用于向切片末尾追加一个或多个元素,返回一个新的切片。如果切片容量不足以容纳新增的元素,append() 函数会分配一个新的切片,并将原有的元素复制到新的切片中。
package main import "fmt" func main() { slice := []int{1, 2, 3} // 向切片末尾追加一个元素 slice = append(slice, 4) fmt.Println(slice) // 输出:[1 2 3 4] // 向切片末尾追加多个元素 slice = append(slice, 5, 6, 7) fmt.Println(slice) // 输出:[1 2 3 4 5 6 7] }
3. len()
len() 函数用于获取切片、映射、字符串、数组和通道等类型的长度或元素个数。
package main import "fmt" func main() { slice := []int{1, 2, 3, 4, 5} fmt.Println(len(slice)) // 输出:5 m := map[string]int{"one": 1, "two": 2} fmt.Println(len(m)) // 输出:2 str := "Hello, World!" fmt.Println(len(str)) // 输出:13 arr := [3]int{1, 2, 3} fmt.Println(len(arr)) // 输出:3 ch := make(chan int, 3) ch <- 1 ch <- 2 ch <- 3 fmt.Println(len(ch)) // 输出:3 }
4. panic() 和 recover()
panic() 函数用于抛出一个运行时错误并终止程序。recover() 函数用于捕获程序中的 panic(),使程序恢复正常并继续执行。通常,panic() 函数用于即时中断程序的运行,而 recover() 函数用于处理出现的错误并进行修复。
package main import "fmt" func recoverDemo() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } } func main() { defer recoverDemo() fmt.Println("Start") panic("Something went wrong!") fmt.Println("End") // 这行代码不会执行 }总结: Golang 内置函数提供了一些常用的功能,如动态分配内存、切片操作、获取长度以及错误处理。通过 make() 函数可以创建动态尺寸的切片、映射和通道;通过 append() 函数可以向切片追加元素;通过 len() 函数可以获取长度;通过 panic() 和 recover() 函数可以处理运行时错误并使程序恢复正常。这些内置函数在 Golang 的开发过程中频繁使用,能够提高代码的效率和可读性。