diff --git a/eBook/08.1.md b/eBook/08.1.md index e121469..8cebf9b 100644 --- a/eBook/08.1.md +++ b/eBook/08.1.md @@ -72,9 +72,9 @@ map 的初始化:`var map1[keytype]valuetype = make(map[keytype]valuetype)`。 或者简写为:`map1 := make(map[keytype]valuetype)`。 -上面例子中的 mapCreated 就是用这种方式创建的:`mapCreated := make(map[string]float)`。 +上面例子中的 mapCreated 就是用这种方式创建的:`mapCreated := make(map[string]float32)`。 -相当于:`mapCreated := map[string]float{}`。 +相当于:`mapCreated := map[string]float32{}`。 mapAssigned 也是 mapList 的引用,对 mapAssigned 的修改也会影响到 mapLit 的值。 @@ -83,12 +83,12 @@ mapAssigned 也是 mapList 的引用,对 mapAssigned 的修改也会影响到 **注意** 如果你错误的使用 new() 分配了一个引用对象,你会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址: ```go -mapCreated := new(map[string]float) +mapCreated := new(map[string]float32) ``` 接下来当我们调用:`mapCreated["key1"] = 4.5` 的时候,编译器会报错: - invalid operation: mapCreated["key1"] (index of type *map[string]float). + invalid operation: mapCreated["key1"] (index of type *map[string]float32). 为了说明值可以是任意类型的,这里给出了一个使用 `func() int` 作为值的 map: @@ -115,7 +115,7 @@ func main() { 和数组不同,map 可以根据新增的 key-value 对动态的伸缩,因此它不存在固定长度或者最大限制。但是你也可以选择标明 map 的初始容量 `capacity`,就像这样:`make(map[keytype]valuetype, cap)`。例如: ```go -map2 := make(map[string]float, 100) +map2 := make(map[string]float32, 100) ``` 当 map 增长到容量上限的时候,如果再增加新的 key-value 对,map 的大小会自动加 1。所以出于性能的考虑,对于大的 map 或者会快速扩张的 map,即使只是大概知道容量,也最好先标明。 diff --git a/eBook/09.5.md b/eBook/09.5.md index f9dc39a..5853e81 100644 --- a/eBook/09.5.md +++ b/eBook/09.5.md @@ -118,7 +118,7 @@ init 函数是不能被调用的。 **编译并安装一个包(参见第 9.7 节):** -在 Linux/OS X 下可以用类似第 4.3 节的 Makefile 脚本做到这一点: +在 Linux/OS X 下可以用类似第 3.9 节的 Makefile 脚本做到这一点: include $(GOROOT)/src/Make.inc TARG=pack1 @@ -127,7 +127,7 @@ init 函数是不能被调用的。 pack1b.go\ include $(GOROOT)/src/Make.pkg -确保的它可执行性通过 `chmod 777 ./Makefile`。 +通过 `chmod 777 ./Makefile`确保它的可执行性。 上面脚本内的include语引入了相应的功能,将自动检测机器的架构并调用正确的编译器和链接器。 diff --git a/eBook/09.6.md b/eBook/09.6.md index b9177f0..b558fd6 100644 --- a/eBook/09.6.md +++ b/eBook/09.6.md @@ -4,7 +4,7 @@ godoc工具(第 3.6 节)在显示自定义包中的注释也有很好的效 例如: -- 在 do_examples 目录下我们有第 11.7 节中的用来排序的 go 文件,文件中有一些注释(文件需要未编译) +- 在 doc_examples 目录下我们有第 11.7 节中的用来排序的 go 文件,文件中有一些注释(文件需要未编译) - 命令行下进入目录下并输入命令: godoc -http =:6060 -goroot="." diff --git a/eBook/09.8.md b/eBook/09.8.md index fc58775..6615f28 100644 --- a/eBook/09.8.md +++ b/eBook/09.8.md @@ -66,12 +66,12 @@ func TestUC(t *testing.T) { } ``` -通过指令编译并安装包到本地:`go install src/uc`, 这会将 uc.a 复制到 pkg/linux_amd64 下面。 +通过指令编译并安装包到本地:`go install uc`, 这会将 uc.a 复制到 pkg/linux_amd64 下面。 -另外,使用 make,通过以下内容创建一个包的 Makefile(1) 在 src/uc 目录下: +另外,使用 make ,通过以下内容创建一个包的 Makefile(1) 在 src/uc 目录下: ``` -include $GOROOT/src/Make.inc +include $(GOROOT)/src/Make.inc TARG=uc GOFILES=\ @@ -114,12 +114,12 @@ func main() { 另外复制 uc.a 到 uc 目录并创建一个 Makefile(2) 并写入文本: ``` -include $GOROOT/src/Make.inc +include $(GOROOT)/src/Make.inc TARG=ucmain GOFILES=\ ucmain.go\ -include $GOROOT/src/Make.cmd +include $(GOROOT)/src/Make.cmd ``` 执行 gomake 编译 `ucmain.go` 成可执行文件ucmain diff --git a/eBook/09.9.md b/eBook/09.9.md index 4142fbb..a15b0ce 100644 --- a/eBook/09.9.md +++ b/eBook/09.9.md @@ -38,7 +38,7 @@ git push -u origin master 也可以将其缩写为:`import uc "github.com/NNNN/uc"`。 -然修改 Makefile: 将 `TARG=uc` 替换为 `TARG-github.com/NNNN/uc`。 +然后修改 Makefile: 将 `TARG=uc` 替换为 `TARG-github.com/NNNN/uc`。 Gomake(和 go install)将通过 `$GOPATH` 下的本地版本进行工作。 @@ -49,7 +49,7 @@ Gomake(和 go install)将通过 `$GOPATH` 下的本地版本进行工作。 - Google Code(hg/Git/svn) - Launchpad(bzr) -版本控制系统可以选择你熟悉的或者本地使用的代码版本控制。Go 核心代码的仓库是使用 Mercurial(hg) 来控制的,所以它是一个最可能保证你可以得到开发者项目中最好的软件。Git 也很出名,同样也适用。如果你从未使用过的版本控制,这些网站有一些很好的帮助并且你可以通过在谷歌搜索 "{name} tutorial",其中 name 为你想要使用的版本控制系统得到许多很好的教程。 +版本控制系统可以选择你熟悉的或者本地使用的代码版本控制。Go 核心代码的仓库是使用 Mercurial(hg) 来控制的,所以它是一个最可能保证你可以得到开发者项目中最好的软件。Git 也很出名,同样也适用。如果你从未使用过版本控制,这些网站有一些很好的帮助并且你可以通过在谷歌搜索 "{name} tutorial",其中 name 为你想要使用的版本控制系统得到许多很好的教程。 ## 链接