From d90f7364d4e3393c5d830a470c09f89de7aa0694 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 23 Sep 2014 22:46:45 -0400 Subject: [PATCH] 06.5 --- README.md | 2 +- eBook/06.4.md | 14 ++++++++++---- eBook/06.5.md | 20 +++++++++++++++++++- eBook/06.6.md | 3 +++ eBook/directory.md | 2 ++ 5 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 eBook/06.6.md diff --git a/README.md b/README.md index 3a36d59..abefc60 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ## 翻译进度 -6.4 [defer 和追踪](eBook/06.4.md) +6.4 [内置函数](eBook/06.5.md) ## 支持本书 diff --git a/eBook/06.4.md b/eBook/06.4.md index e16247b..cda79b8 100644 --- a/eBook/06.4.md +++ b/eBook/06.4.md @@ -8,7 +8,7 @@ ```go package main -import “fmt” +import "fmt" func main() { Function1() @@ -130,8 +130,8 @@ ok, disconnected from db 一个基础但十分实用的实现代码执行追踪的方案就是在进入和离开某个函数打印相关的消息,即可以提炼为下面两个函数: ```go - func trace(s string) { fmt.Println("entering:", s) } - func untrace(s string) { fmt.Println("leaving:", s) } +func trace(s string) { fmt.Println("entering:", s) } +func untrace(s string) { fmt.Println("leaving:", s) } ``` 以下代码展示了何时调用两个函数: @@ -234,4 +234,10 @@ func main() { 输出: - Output: 2011/10/04 10:46:11 func1(“Go”) = 7, EOF \ No newline at end of file + Output: 2011/10/04 10:46:11 func1(“Go”) = 7, EOF + +## 链接 + +- [目录](directory.md) +- 上一节:[传递变长参数](06.3.md) +- 下一节:[内置函数](06.5.md) \ No newline at end of file diff --git a/eBook/06.5.md b/eBook/06.5.md index f675b5f..a99c22b 100644 --- a/eBook/06.5.md +++ b/eBook/06.5.md @@ -1,3 +1,21 @@ # 6.5 内置函数 -142 \ No newline at end of file +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() 是一个函数,不要忘记它的括号**| +|copy、append|用于复制和连接切片| +|panic、recover|两者均用于错误处理机制| +|print、println|底层打印函数(详见第 4.2 节),在部署环境中建议使用 fmt 包| +|complex、real imag|用于创建和操作复数(详见第 4.5.2.2 节)| + +## 链接 + +- [目录](directory.md) +- 上一节:[defer 和追踪](06.4.md) +- 下一节:[递归函数](06.6.md) \ No newline at end of file diff --git a/eBook/06.6.md b/eBook/06.6.md new file mode 100644 index 0000000..96093f4 --- /dev/null +++ b/eBook/06.6.md @@ -0,0 +1,3 @@ +# 6.6 递归函数 + +143 \ No newline at end of file diff --git a/eBook/directory.md b/eBook/directory.md index 8f15135..3b0ae01 100644 --- a/eBook/directory.md +++ b/eBook/directory.md @@ -50,6 +50,8 @@ - 6.2 [参数与返回值](06.2.md) - 6.3 [传递变长参数](06.3.md) - 6.4 [defer 和追踪](06.4.md) + - 6.5 [内置函数](06.5.md) + - 6.6 [递归函数](06.6.md) - 第7章:数组(array)与切片(slice) - 第8章:Maps - 第9章:包(package)