Răsfoiți Sursa

Fix links to the code examples

Change-Id: I644c6a516abab2577353644c128102457deeb41a
Guobiao Mei 11 ani în urmă
părinte
comite
07d26e14d1
16 a modificat fișierele cu 33 adăugiri și 33 ștergeri
  1. 2 2
      eBook/07.1.md
  2. 3 3
      eBook/07.2.md
  3. 3 3
      eBook/07.3.md
  4. 2 2
      eBook/07.4.md
  5. 1 1
      eBook/07.5.md
  6. 3 3
      eBook/08.1.md
  7. 2 2
      eBook/08.2.md
  8. 2 2
      eBook/08.3.md
  9. 2 2
      eBook/08.4.md
  10. 2 2
      eBook/08.5.md
  11. 2 2
      eBook/08.6.md
  12. 1 1
      eBook/09.1.md
  13. 2 2
      eBook/09.2.md
  14. 2 2
      eBook/09.4.md
  15. 2 2
      eBook/09.5.md
  16. 2 2
      eBook/09.8.md

+ 2 - 2
eBook/07.1.md

@@ -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"
@@ -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)

+ 3 - 3
eBook/07.2.md

@@ -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"
@@ -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"
@@ -260,4 +260,4 @@ Buffer 可以这样定义:`var buffer bytes.Buffer`
 
 - [目录](directory.md)
 - 上一节:[声明和初始化](07.1.md)
-- 下一节:[For-range 结构](07.3.md)
+- 下一节:[For-range 结构](07.3.md)

+ 3 - 3
eBook/07.3.md

@@ -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"
@@ -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"
@@ -93,4 +93,4 @@ b) 写一个 SumAndAverage 方法,返回两个 int 和 float32 类型的未命
 
 - [目录](directory.md)
 - 上一节:[切片](07.2.md)
-- 下一节:[切片重组](07.4.md)
+- 下一节:[切片重组](07.4.md)

+ 2 - 2
eBook/07.4.md

@@ -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"
@@ -75,4 +75,4 @@ slice 可以反复扩展直到占据整个相关数组。
 
 - [目录](directory.md)
 - 上一节:[For-range 结构](07.3.md)
-- 下一节:[切片的复制与追加](07.5.md)
+- 下一节:[切片的复制与追加](07.5.md)

+ 1 - 1
eBook/07.5.md

@@ -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"

+ 3 - 3
eBook/08.1.md

@@ -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"
@@ -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"
@@ -124,4 +124,4 @@ mapAssigned也是mapList的引用,对mapAssigned的修改也会影响到mapLit
 ##链接
 - [目录](directory.md)
 - 上一节:[Maps](08.0.md)
-- 下一节:[删除元素](08.2.md)
+- 下一节:[删除元素](08.2.md)

+ 2 - 2
eBook/08.2.md

@@ -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"
@@ -69,4 +69,4 @@ isPresent返回一个bool值:如果key1存在于map1,val1就是key1对应的
 ##链接
 - [目录](directory.md)
 - 上一节:[声明,初始化和make](08.1.md)
-- 下一节:[for循环构造方法](08.3.md)
+- 下一节:[for循环构造方法](08.3.md)

+ 2 - 2
eBook/08.3.md

@@ -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"
@@ -56,4 +56,4 @@
 ##链接
 - [目录](directory.md)
 - 上一节:[删除元素](08.2.md)
-- 下一节:[maps分片](08.4.md)
+- 下一节:[maps分片](08.4.md)

+ 2 - 2
eBook/08.4.md

@@ -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"
@@ -34,4 +34,4 @@
 ##链接
 - [目录](directory.md)
 - 上一节:[for循环构造方法](08.3.md)
-- 下一节:[map排序](08.5.md)
+- 下一节:[map排序](08.5.md)

+ 2 - 2
eBook/08.5.md

@@ -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
@@ -56,4 +56,4 @@ map默认是无序的,不管是按照key还是按照value默认都不排序(
 ##链接
 - [目录](directory.md)
 - 上一节:[maps分片](08.4.md)
-- 下一节:[倒置map](08.6.md)
+- 下一节:[倒置map](08.6.md)

+ 2 - 2
eBook/08.6.md

@@ -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 (
@@ -41,4 +41,4 @@
 ##链接
 - [目录](directory.md)
 - 上一节:[map排序](08.5.md)
-- 下一节:[包](09.0.md)
+- 下一节:[包](09.0.md)

+ 1 - 1
eBook/09.1.md

@@ -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 (

+ 2 - 2
eBook/09.2.md

@@ -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 (
@@ -53,4 +53,4 @@ Compile函数也可能返回一个错误,我们在使用时忽略对错误的
 ##链接
 - [目录](directory.md)
 - 上一节:[标准库概述](09.1.md)
-- 下一节:[锁和sync包](09.2.md)
+- 下一节:[锁和sync包](09.2.md)

+ 2 - 2
eBook/09.4.md

@@ -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

+ 2 - 2
eBook/09.5.md

@@ -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
@@ -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 (

+ 2 - 2
eBook/09.8.md

@@ -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"
@@ -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。