Skip to content

Commit

Permalink
Fix links to the code examples
Browse files Browse the repository at this point in the history
Change-Id: I644c6a516abab2577353644c128102457deeb41a
  • Loading branch information
guobiao committed Dec 18, 2014
1 parent 6278195 commit 07d26e1
Show file tree
Hide file tree
Showing 16 changed files with 33 additions and 33 deletions.
4 changes: 2 additions & 2 deletions eBook/07.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ arr1 的长度是 5,索引范围从 0 到 len(arr1)-1
- 通过 for 打印数组元素
- 通过 for 依次处理元素

示例 7.1 [for_arrays.go](exmaples/chapter_7/for_arrays.go)
示例 7.1 [for_arrays.go](examples/chapter_7/for_arrays.go)

package main
import "fmt"
Expand Down Expand Up @@ -258,4 +258,4 @@ Example 7.6 [array_sum.go](examples/chapter_7/array_sum.go)

- [目录](directory.md)
- 上一节:[数组与切片](07.0.md)
- 下一节:[切片](07.2.md)
- 下一节:[切片](07.2.md)
6 changes: 3 additions & 3 deletions eBook/07.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ slice 在内存中的组织方式实际上是一个有 3 个域的结构体:

![](images/7.2_fig7.2.png?raw=true)

示例 7.7 [array_slices.go](exmaples/chapter_7/array_slices.go)
示例 7.7 [array_slices.go](examples/chapter_7/array_slices.go)

package main
import "fmt"
Expand Down Expand Up @@ -142,7 +142,7 @@ make 的使用方式是:`func make([]T, len, cap)` 其中 cap 是可选参数

下图描述了使用 make 方法生成的 slice 的内存结构:![](images/7.2_fig7.2.1.png?raw=true)

示例 7.8 [make_slice.go](exmaples/chapter_7/make_slice.go)
示例 7.8 [make_slice.go](examples/chapter_7/make_slice.go)

package main
import "fmt"
Expand Down Expand Up @@ -260,4 +260,4 @@ Buffer 可以这样定义:`var buffer bytes.Buffer`

- [目录](directory.md)
- 上一节:[声明和初始化](07.1.md)
- 下一节:[For-range 结构](07.3.md)
- 下一节:[For-range 结构](07.3.md)
6 changes: 3 additions & 3 deletions eBook/07.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

第一个返回值 dx 是数组或者 slice 的索引,第二个是在该索引位置的值;他们都是仅在 for 循环内部可见的局部变量,所以该值只是该索引项 slice 值的一个拷贝并且不能被修改。

示例 7.9 [slices_forrange.go](exmaples/chapter_7/slices_forrange.go)
示例 7.9 [slices_forrange.go](examples/chapter_7/slices_forrange.go)

package main
import "fmt"
Expand All @@ -25,7 +25,7 @@
}
}

示例 7.10 [slices_forrange2.go](exmaples/chapter_7/slices_forrange2.go)
示例 7.10 [slices_forrange2.go](examples/chapter_7/slices_forrange2.go)

package main
import "fmt"
Expand Down Expand Up @@ -93,4 +93,4 @@ b) 写一个 SumAndAverage 方法,返回两个 int 和 float32 类型的未命

- [目录](directory.md)
- 上一节:[切片](07.2.md)
- 下一节:[切片重组](07.4.md)
- 下一节:[切片重组](07.4.md)
4 changes: 2 additions & 2 deletions eBook/07.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
slice 可以反复扩展直到占据整个相关数组。


示例 7.11 [reslicing.go](exmaples/chapter_7/reslicing.go)
示例 7.11 [reslicing.go](examples/chapter_7/reslicing.go)

package main
import "fmt"
Expand Down Expand Up @@ -75,4 +75,4 @@ slice 可以反复扩展直到占据整个相关数组。

- [目录](directory.md)
- 上一节:[For-range 结构](07.3.md)
- 下一节:[切片的复制与追加](07.5.md)
- 下一节:[切片的复制与追加](07.5.md)
2 changes: 1 addition & 1 deletion eBook/07.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

如果想增加 slice 的容量,我们必须创建一个新的更大的 slice 并把原分片的内容都拷贝过来。下面的代码描述了从拷贝 slice 的 copy 方法和向 slice 追加新元素的 append 方法。

示例 7.12 [copy_append_slice.go](exmaples/chapter_7/copy_append_slice.go)
示例 7.12 [copy_append_slice.go](examples/chapter_7/copy_append_slice.go)

package main
import "fmt"
Expand Down
6 changes: 3 additions & 3 deletions eBook/08.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ key1对应的值可以通过赋值符号来设置为val1:map1[key1] = val1

常用的len(map1)方法可以获得map中的pair数目,这个数目是可以伸缩的,因为map-pairs在运行时可以动态添加和删除。

示例 8.1 [make_maps.go](exmaples/chapter_8/make_maps.go)
示例 8.1 [make_maps.go](examples/chapter_8/make_maps.go)

package main
import "fmt"
Expand Down Expand Up @@ -84,7 +84,7 @@ mapAssigned也是mapList的引用,对mapAssigned的修改也会影响到mapLit

为了说明值可以是任意类型的,这里给出了一个使用func() int作为值的map:

示例 8.2 [map_func.go](exmaples/chapter_8/map_func.go)
示例 8.2 [map_func.go](examples/chapter_8/map_func.go)

package main
import "fmt"
Expand Down Expand Up @@ -124,4 +124,4 @@ mapAssigned也是mapList的引用,对mapAssigned的修改也会影响到mapLit
##链接
- [目录](directory.md)
- 上一节:[Maps](08.0.md)
- 下一节:[删除元素](08.2.md)
- 下一节:[删除元素](08.2.md)
4 changes: 2 additions & 2 deletions eBook/08.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ isPresent返回一个bool值:如果key1存在于map1,val1就是key1对应的

如果key1不存在,该操作不会产生错误。

示例 8.4 [map_testelement.go](exmaples/chapter_8/map_testelement.go)
示例 8.4 [map_testelement.go](examples/chapter_8/map_testelement.go)

package main
import "fmt"
Expand Down Expand Up @@ -69,4 +69,4 @@ isPresent返回一个bool值:如果key1存在于map1,val1就是key1对应的
##链接
- [目录](directory.md)
- 上一节:[声明,初始化和make](08.1.md)
- 下一节:[for循环构造方法](08.3.md)
- 下一节:[for循环构造方法](08.3.md)
4 changes: 2 additions & 2 deletions eBook/08.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
fmt.Printf("key is: %d\n", key)
}

示例 8.5 [maps_forrange.go](exmaples/chapter_8/maps_forrange.go)
示例 8.5 [maps_forrange.go](examples/chapter_8/maps_forrange.go)

package main
import "fmt"
Expand Down Expand Up @@ -56,4 +56,4 @@
##链接
- [目录](directory.md)
- 上一节:[删除元素](08.2.md)
- 下一节:[maps分片](08.4.md)
- 下一节:[maps分片](08.4.md)
4 changes: 2 additions & 2 deletions eBook/08.4.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#8.3 map分片
假设我们想获取一个map的分片,我们必须使用两次make()方法,第一次分配slice,第二次分配slice的每个map元素(参见下面的例子8.3)。

示例 8.3 [maps_forrange.go](exmaples/chapter_8/maps_forrange.go)
示例 8.3 [maps_forrange.go](examples/chapter_8/maps_forrange.go)

package main
import "fmt"
Expand Down Expand Up @@ -34,4 +34,4 @@
##链接
- [目录](directory.md)
- 上一节:[for循环构造方法](08.3.md)
- 下一节:[map排序](08.5.md)
- 下一节:[map排序](08.5.md)
4 changes: 2 additions & 2 deletions eBook/08.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ map默认是无序的,不管是按照key还是按照value默认都不排序(

下面有一个示例:

示例 8.6 [sort_map.go](exmaples/chapter_8/sort_map.go)
示例 8.6 [sort_map.go](examples/chapter_8/sort_map.go)

// the telephone alphabet:
package main
Expand Down Expand Up @@ -56,4 +56,4 @@ map默认是无序的,不管是按照key还是按照value默认都不排序(
##链接
- [目录](directory.md)
- 上一节:[maps分片](08.4.md)
- 下一节:[倒置map](08.6.md)
- 下一节:[倒置map](08.6.md)
4 changes: 2 additions & 2 deletions eBook/08.6.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#8.6 倒置map
这里倒置是指调换key和value。如果map的值类型可以作为key且所有的value是唯一的,那么通过下面的方法可以简单的做到倒置:

示例 8.7 [invert_map.go](exmaples/chapter_8/invert_map.go)
示例 8.7 [invert_map.go](examples/chapter_8/invert_map.go)

package main
import (
Expand Down Expand Up @@ -41,4 +41,4 @@
##链接
- [目录](directory.md)
- 上一节:[map排序](08.5.md)
- 下一节:[](09.0.md)
- 下一节:[](09.0.md)
2 changes: 1 addition & 1 deletion eBook/09.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ syscall: 底层的外部包,提供了操作系统底层调用的基本接口

通过一个Go程序让Linux重启来体现它的能力(通过sudo ./6.out来执行程序):

示例 9.1 [reboot.go](exmaples/chapter_9/reboot.go)
示例 9.1 [reboot.go](examples/chapter_9/reboot.go)

package main
import (
Expand Down
4 changes: 2 additions & 2 deletions eBook/09.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

更多方法中,必须先将正则通过Compile方法返回一个Regexp对象。然后我们将掌握一些匹配,查找,替换相关的功能。

示例 9.2 [pattern.go](exmaples/chapter_9/pattern.go)
示例 9.2 [pattern.go](examples/chapter_9/pattern.go)

package main
import (
Expand Down Expand Up @@ -53,4 +53,4 @@ Compile函数也可能返回一个错误,我们在使用时忽略对错误的
##链接
- [目录](directory.md)
- 上一节:[标准库概述](09.1.md)
- 下一节:[锁和sync包](09.2.md)
- 下一节:[锁和sync包](09.2.md)
4 changes: 2 additions & 2 deletions eBook/09.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

大的整型数字是通过big.NewInt(n)来构造的,其中n位int64类型整数。而大有理数是用过big.NewRat(N,D)方法构造.N(分子)和D(分母)都是int64型整数。因为Go语言不支持运算符重载,所以所有大数字类型都有像是Add()和Mul()这样的方法。它们作用于作为receiver的整数和有理数,大多数情况下它们修改receiver并以receiver作为返回结果。因为没有必要创建big.Int类型的临时变量来存放中间结果,所以这样的运算可通过内存链式存储。

示例 9.2 [big.go](exmaples/chapter_9/big.go)
示例 9.2 [big.go](examples/chapter_9/big.go)

package main import ( "fmt" "math"" "math/big" ) func main() { // Here are some calculations with bigInts: im := big.NewInt(math.MaxInt64) in := im io := big.NewInt(1956) ip := big.NewInt(1) ip.Mul(im, in).Add(ip, im).Div(ip, io) fmt.Printf(“Big Int: %v\n”, ip) // Here are some calculations with bigInts: rm := big.NewRat(math.MaxInt64, 1956) rn := big.NewRat(-1956, math.MaxInt64) ro := big.NewRat(19, 56) rp := big.NewRat(1111, 2222) rq := big.NewRat(1, 1) rq.Mul(rm, rn).Add(rq, ro).Mul(rq, rp) fmt.Printf(“Big Rat: %v\n”, rq) }
输出结果:

Big Int: 43492122561469640008497075573153004 Big Rat: -37/112
Big Int: 43492122561469640008497075573153004 Big Rat: -37/112
Expand Down
4 changes: 2 additions & 2 deletions eBook/09.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

当前目录下(examples/chapter9)有一个名为package_test.go的程序, 它使用了自定义包pack1中pack1.go的代码。这段程序(联通编译链接生成的pack1.a)存放在当前目录下一个名为pack1的文件夹下。所以链接器将包的对象和主程序对象链接在一起。

示例 9.4 [pack1.go](exmaples/chapter_9/pack1.go)
示例 9.4 [pack1.go](examples/chapter_9/pack1.go)

package pack1
var Pack1Int int = 42
Expand All @@ -26,7 +26,7 @@

路径是指当前目录的相对路径。

示例 9.5 [package_test.go](exmaples/chapter_9/package_test.go)
示例 9.5 [package_test.go](examples/chapter_9/package_test.go)

package main
import (
Expand Down
4 changes: 2 additions & 2 deletions eBook/09.8.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
/home/user/goprograms ucmain.go (uc包主程序) Makefile (ucmain的2-makefile) ucmain src/uc (包含uc包的go源码) uc.go uc_test.go Makefile (包的1-makefile) uc.a _obj uc.a _test uc.a bin (包含最终的执行文件) ucmain pkg/linux_amd64 uc.a (包的目标文件)
将你的项目放在goprograms目录下(你可以创建一个环境变量GOPATH,参考2.2/3章节:在.profile和.bashrc文件中添加export GOPATH=/home/user/goprograms),而你的项目将作为src的子目录。uc包 中的功能在uc.go中实现。

示例 9.6 [uc.go](exmaples/chapter_9/uc.go)
示例 9.6 [uc.go](examples/chapter_9/uc.go)

package uc
import "strings"
Expand Down Expand Up @@ -121,4 +121,4 @@ uc包可以通过"import uc"在任何Go程序中被引用。
对于Go工具你可以指定:prog1_$GOOS.go or prog1_$GOARCH.go
或在平台Makefile中: prog1_$(GOOS).go\ or prog1_$(GOARCH).go\
示例 9.6: package strev
运用前面9.7章节所有技术使用strev包解决练习9.2。
运用前面9.7章节所有技术使用strev包解决练习9.2。
Expand Down

0 comments on commit 07d26e1

Please sign in to comment.