c语言编程笔录

首页 >   > 笔记大全

笔记大全

Golang内置函数使用方法详细介绍

更新时间:2023-10-01

1. 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 的开发过程中频繁使用,能够提高代码的效率和可读性。