Files
the-way-to-go_ZH_CN/eBook/06.5.md
Haigang Zhou c42d8a340a 第六章修改 (#843)
Co-authored-by: Joe Chen <jc@unknwon.io>
2022-05-09 22:19:53 +08:00

22 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 6.5 内置函数
Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作,例如:`len()``cap()``append()`,或必须用于系统级的操作,例如:`panic()`。因此,它们需要直接获得编译器的支持。
以下是一个简单的列表,我们会在后面的章节中对它们进行逐个深入的讲解。
|名称|说明|
|---|---|
|`close()`|用于管道通信|
|`len()``cap()`|`len()` 用于返回某个类型的长度或数量(字符串、数组、切片、`map` 和管道);`cap()` 是容量的意思,用于返回某个类型的最大容量(只能用于数组、切片和管道,不能用于 `map`|
|`new()``make()`|`new()``make()` 均是用于分配内存:`new()` 用于值类型和用户定义的类型,如自定义结构,`make` 用于内置引用类型(切片、`map` 和管道)。它们的用法就像是函数,但是将类型作为参数:`new(type)``make(type)``new(T)` 分配类型 `T` 的零值并返回其地址,也就是指向类型 `T` 的指针(详见[第 10.1 节](10.1.md))。它也可以被用于基本类型:`v := new(int)``make(T)` 返回类型 `T` 的初始化之后的值,因此它比 `new()` 进行更多的工作(详见[第 7.2.3/4 节](07.2.md)、[第 8.1.1 节](08.1.md)和[第 14.2.1 节](14.2.md))。**`new()` 是一个函数,不要忘记它的括号**。|
|`copy()``append()`|用于复制和连接切片|
|`panic()``recover()`|两者均用于错误处理机制|
|`print()``println()`|底层打印函数(详见[第 4.2 节](04.2.md)),在部署环境中建议使用 `fmt` 包|
|`complex()``real ()``imag()`|用于创建和操作复数(详见[第 4.5.2.2 节](04.5.md)|
## 链接
- [目录](directory.md)
- 上一节:[defer 和追踪](06.4.md)
- 下一节:[递归函数](06.6.md)