Go 1.23 内置函数总结
一、内存分配与管理类
1. new
- 功能:为值类型分配内存,初始化为零值并返回指针。
- 注意事项:仅适用于值类型,不会对类型进行初始化操作,只是分配内存。
2. make
- 功能:创建并初始化切片、映射和通道。
- 注意事项:只能用于这三种引用类型,使用时需明确它们的初始状态,如切片的长度和容量、映射和通道的相关参数。
二、集合操作类
1. append
- 功能:向切片追加元素,容量不足时自动扩容。
- 注意事项:追加操作可能导致切片底层数组重新分配,若原切片被多个变量引用,需注意数据一致性。返回的切片可能与原切片不同。
2. copy
- 功能:将源切片数据复制到目标切片,返回复制元素个数。
- 注意事项:复制的元素个数取决于目标切片和源切片的长度,取两者中较小值。
3. delete
- 功能:从映射中删除指定键的元素。
- 注意事项:若删除的键不存在,不会引发错误。
4. clear
- 功能:清空切片、映射、类型化集合中的元素。
- 注意事项:对于切片,只是将元素重置为零值,长度和容量不变;对于映射,会移除所有键值对。
三、长度与容量查询类
1. len
- 功能:返回字符串、数组、切片、映射、通道等的长度。
- 注意事项:不同类型的 “长度” 含义不同,如字符串是字节数,映射是键值对数量等。
2. cap
- 功能:返回数组、切片、通道的容量。
- 注意事项:并非所有类型都有容量概念,如映射和字符串没有容量属性,调用会引发编译错误。
四、输入输出与调试类
print 和 println
- 功能:在控制台输出信息,
println 会添加换行符。
- 注意事项:主要用于调试,输出格式不灵活,正式开发建议使用
fmt 包。
五、错误处理与运行时控制类
1. panic
- 功能:触发运行时恐慌,停止当前函数执行并回溯调用栈。
- 注意事项:
panic 会导致程序崩溃,除非有 recover 进行恢复,应谨慎使用,通常用于处理不可恢复的错误。
2. recover
- 功能:从运行时恐慌中恢复,只能在
defer 函数中使用。
- 注意事项:若不在
defer 函数中调用,recover 不会起作用。
六、通道操作类
close
- 功能:关闭通道,关闭后不能发送数据但可接收。
- 注意事项:重复关闭通道会引发恐慌,接收已关闭通道数据需判断第二个返回值确定通道是否关闭。
七、类型断言辅助类
1. complex
- 功能:创建复数。
- 注意事项:参数需为合适的数值类型,确保创建的复数符合预期。
2. real
- 功能:返回复数的实部。
- 注意事项:只能用于复数类型,对其他类型使用会引发编译错误。
3. imag
- 功能:返回复数的虚部。
- 注意事项:同
real,只能用于复数类型。