第六章修改 (#843)

Co-authored-by: Joe Chen <jc@unknwon.io>
This commit is contained in:
Haigang Zhou
2022-05-09 22:19:53 +08:00
committed by GitHub
parent f5dae8f559
commit c42d8a340a
13 changed files with 101 additions and 99 deletions

View File

@@ -1,18 +1,18 @@
# 6.5 内置函数
Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作例如len、cap 和 append或必须用于系统级的操作例如panic。因此它们需要直接获得编译器的支持。
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 节)。它也可以被用于基本类型:`v := new(int)`。make(T) 返回类型 T 的初始化之后的值,因此它比 new 进行更多的工作(详见第 7.2.3/4 节、第 8.1.1 节和第 14.2.1 节)**new() 是一个函数,不要忘记它的括号**|
|copyappend|用于复制和连接切片|
|panicrecover|两者均用于错误处理机制|
|printprintln|底层打印函数(详见第 4.2 节),在部署环境中建议使用 fmt 包|
|complex、real imag|用于创建和操作复数(详见第 4.5.2.2 节)|
|`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)|
## 链接