golang 内建函数

文章目录 (?) [+]

    append

    // 将元素追加到切片的末尾。 如果原切片具有足够的容量,它将追加元素到切片的末尾。 如果没有,将分配一个新的底层数组来追加新元素并返回新的切片,因此要将追加后切片重新赋值给原切片变量:
    // slice = append(slice, elem1, elem2)
    // slice = append(slice, anotherSlice...)
    // 也可以这样添加字符串:
    // slice = append([]byte("hello "), "world"...)
    func append(slice []Type, elems ...Type) []Type

    copy

    // 将元素从源切片复制到目标切片,并返回复制的元素数量
    func copy(dst, src []Type) int

    delete

    // 从 map 中删除指定的键,如果键名不存在或者 map 为 nil 将不会操作
    func delete(m map[Type]Type1, key Type)

    len

    // 根据类型返回 v 的长度:
    // 数组:长度为 v 中的元素个数,数组的容量与长度始终保持一直且自声明后不可改变
    // 数组指针:*v 中的元素个数
    // 切片或 map:v 中的元素个数
    // 字符串:v 中的字节数
    // 管道:通道缓冲区中排队(未读)的元素个数
    // 如果 v 为 nil,则长度为 0
    func len(v Type) int

    cap

    // 用于获取数组、数组指针、切片和 channel 类型变量的容量
    // 数组:容量为 v 中的元素数,与 len(v) 相同
    // 数组指针:容量为 *v 中的元素数,与 len(v) 相同
    // 切片:容量为切片后可以达到的最大长度
    // 管道:容量为管道缓冲容量,以元素为单位
    // 如果 v 为 nil,则容量为 0
    func cap(v Type) int

    make

    // 仅用于 map、slice 和 channel 类型的内存分配
    // 传入参数是 type 类型,而不是值
    // 与 new 不同的是 make 的返回类型与其参数的类型相同,而不是指向它的指针
    // 对于切片类型 make([]Type, len[, cap]) 将返回一个长度为 len 容量为 cap 的切片,若未指定 cap 默认容量为 len
    // 对于 map 类型 make(map[Type]Type[, len]) 将返回一个容纳 len 个的元素的空 map, len 可以省略,但这样它分配的起始大小会较小
    // 对于 chan 类型 make(chan Type[, len]),将返回一个缓冲区容量为 len 的管道,如果 len 为 0 或忽略,则管道不缓冲
    func make(t Type, size ...IntegerType) Type

    new

    // 用于各种类型的内存分配
    // 传入参数是 type 类型,而不是值
    // 返回值是指向该类型新分配的零值的指针
    // new(T) 相当 &T 返回指针 *T
    func new(Type) *Type

    complex

    // The complex built-in function constructs a complex value from two
    // floating-point values. The real and imaginary parts must be of the same
    // size, either float32 or float64 (or assignable to them), and the return
    // value will be the corresponding complex type (complex64 for float32,
    // complex128 for float64).
    func complex(r, i FloatType) ComplexType

    real

    // The real built-in function returns the real part of the complex number c.
    // The return value will be floating point type corresponding to the type of c.
    func real(c ComplexType) FloatType

    imag

    // The imag built-in function returns the imaginary part of the complex
    // number c. The return value will be floating point type corresponding to
    // the type of c.
    func imag(c ComplexType) FloatType

    close

    // 关闭一个管道,该管道必须为 双向 或 仅发送
    // 它只能由发送者执行,而不能由接收者执行
    // 具有在接收到最后一个发送值之后关闭管道的作用
    
    // x, ok := <-c
    // 从关闭的管道 c 接收完最后一个值,再从 c 进行任何接收都将成功而不阻塞
    // 将始终返回管道 元素的零值 和 false
    func close(c chan<- Type)

    panic

    // 用于发生异常时立即停止当前 goroutine 的执行
    // panic 发生时,当前函数已注册的 defer 调用都会正常调用并返回到当前函数
    // 对调用当前函数的上层函数而言,当前函数的 panic 会终止上层函数的执行并执行已注册的defer 调用
    // 这将不断蔓延直到执行的 goroutine 中所有函数以相反的顺序停止为止,然后程序以非零代码终止
    func panic(v interface{})

    recover

    // 用于出现 panic 时停止 panic 序列以防止蔓延到上层调用,同时会检索传递给 panic 调用的错误值
    // 只能配合 defer 使用此函数,除此之外将不会停止 panic 序列
    func recover() interface{}

    print

    // 以特定格式格式化其参数,并将结果写入标准错误
    // 对于输出引导和调试很有用,但未来不保证该方法一直存在
    func print(args ...Type)

    println

    // 以特定格式格式化其参数,并将结果写入标准错误
    // 与 print 不同的是,会在每个参数之间添加空格,并在最后添加换行符
    // 对于输出引导和调试很有用,但未来不保证该方法一直存在
    func println(args ...Type)

    error

    // 错误类型是通过 interface 实现的
    type error interface {
    	Error() string
    }


    本文标题:golang 内建函数
    本文链接:https://www.lanseyujie.com/post/golang-built-in-functions.html
    版权声明:本文使用「署名-非商业性使用-相同方式共享」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0