Go 1.23 内置函数总结

140 阅读3分钟

一、内存分配与管理类

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,只能用于复数类型。