mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:34:15 +08:00
Merge pull request #62 from guobiao/fork
Fix links to the code examples
This commit is contained in:
@@ -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)
|
||||
|
@@ -49,7 +49,7 @@ slice 在内存中的组织方式实际上是一个有 3 个域的结构体:
|
||||
|
||||

|
||||
|
||||
示例 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 的内存结构:
|
||||
|
||||
示例 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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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"
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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 (
|
||||
|
@@ -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)
|
||||
|
@@ -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""
|
||||
|
@@ -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 @@
|
||||
|
||||
import的一般格式如下:
|
||||
|
||||
import “包的路径或url地址“ 像 import "github.com/org1/pack1”
|
||||
import “包的路径或url地址“ 像 import "github.com/org1/pack1”
|
||||
|
||||
路径是指当前目录的相对路径。
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
/home/user/goprograms
|
||||
ucmain.go (uc包主程序)
|
||||
Makefile (ucmain的2-makefile)
|
||||
ucmain
|
||||
ucmain
|
||||
|
||||
src/uc (包含uc包的go源码)
|
||||
uc.go
|
||||
@@ -121,4 +121,4 @@ uc包可以通过"import uc"在任何Go程序中被引用。
|
||||
go install /home/user/goprograms/src/uc # 编译安装uc
|
||||
cd /home/user/goprograms/uc
|
||||
go install ./uc # 编译安装uc(和之前的指令一样)
|
||||
cd ..
|
||||
cd ..
|
||||
|
Reference in New Issue
Block a user