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 内建函数
版权声明:本文使用「署名-非商业性使用-相同方式共享」创作共享协议,转载或使用请遵守署名协议。