From ee65c4cf95424c4cdddd04143d090e591ad9c2b1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 5 Nov 2014 18:12:28 -0500 Subject: [PATCH] 07.3 --- README.md | 2 +- eBook/07.3.md | 36 ++++++++++++++++++------------------ eBook/07.4.md | 5 ++++- eBook/directory.md | 1 + 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index d9f0a95..5a06551 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ## 翻译进度 -7.2 [For-range 结构](eBook/07.2.md) +7.3 [For-range 结构](eBook/07.3.md) ## 支持本书 diff --git a/eBook/07.3.md b/eBook/07.3.md index 30ea4a3..25cac47 100644 --- a/eBook/07.3.md +++ b/eBook/07.3.md @@ -1,13 +1,12 @@ # 7.3 For-range 结构 -172 +这种构建方法可以应用与数组和 slice: -这种构建方法可以应用与数组和slice: for ix, value := range slice1 { ... } -第一个返回值dx是数组或者slice的索引,第二个是在该索引位置的值;他们都是仅在for循环内部可见的局部变量,所以该值只是该索引项slice值的一个拷贝并且不能被修改。 +第一个返回值 dx 是数组或者 slice 的索引,第二个是在该索引位置的值;他们都是仅在 for 循环内部可见的局部变量,所以该值只是该索引项 slice 值的一个拷贝并且不能被修改。 示例 7.9 [slices_forrange.go](exmaples/chapter_7/slices_forrange.go) @@ -43,7 +42,7 @@ } } -slices_forrange2.go给出了一个关于字符串的例子, `_`可以用于忽略索引。 +slices_forrange2.go 给出了一个关于字符串的例子, `_` 可以用于忽略索引。 如果你只需要索引,你可以忽略第二个变量,例如: @@ -52,11 +51,11 @@ slices_forrange2.go给出了一个关于字符串的例子, `_`可以用于忽 } // Output: 0 1 2 3 -如果你需要修改seasons[ix]的值可以使用这个版本。 +如果你需要修改 seasons[ix] 的值可以使用这个版本。 -多维slice下的for range方法: +多维 slice 下的 for-range 方法: -通过计算行数和矩阵值可以很方便的写出如(参考7.1.3)的for-loops方法来,例如(参考7.5的例子multidim_array.go): +通过计算行数和矩阵值可以很方便的写出如(参考第 7.1.3 节)的 for-loops 方法来,例如(参考第 7.5 节的例子 multidim_array.go): for row := range screen { for column := range screen[0] { @@ -64,33 +63,34 @@ slices_forrange2.go给出了一个关于字符串的例子, `_`可以用于忽 } } -问题 7.5: 假设我们有如下slice: items := [...]int{10, 20, 30, 40, 50} +问题 7.5: 假设我们有如下 slice:`items := [...]int{10, 20, 30, 40, 50}` -a) 如果我们写了如下的for循环,那么执行完for循环后的item的值是多少?如果你不确定的话可以测试一下:) +a) 如果我们写了如下的 for 循环,那么执行完 for 循环后的 item 的值是多少?如果你不确定的话可以测试一下:) for _, item := range items { item *= 2 } -b) 如果a)无法正常工作,写一个for循环让值可以double。 +b) 如果 a) 无法正常工作,写一个 for 循环让值可以 double。 -问题 7.6: 通过使用省略号操作符`...`来实现累加方法。 +问题 7.6: 通过使用省略号操作符 `...` 来实现累加方法。 练习: 练习 7.7 sum_array.go -a) 写一个Sum函数,传入参数为一个4位float数组成的数组arrF,返回该数组的所有数字和。 +a) 写一个 Sum 函数,传入参数为一个 4 位 float 数组成的数组 arrF,返回该数组的所有数字和。 -如果把数组修改为slice的话代码要做怎样的修改?如果用slice形式方法实现不同长度数组的的和呢? +如果把数组修改为 slice 的话代码要做怎样的修改?如果用 slice 形式方法实现不同长度数组的的和呢? -b) 写一个SumAndAverage方法,返回两个int和float32类型的未命名变量的和与平均值。 +b) 写一个 SumAndAverage 方法,返回两个 int 和 float32 类型的未命名变量的和与平均值。 练习 7.8 min_max.go -写一个minSlice方法,传入一个int的slice并且返回最小值,再写一个maxSlice方法返回最大值。 +写一个 minSlice 方法,传入一个 int 的 slice 并且返回最小值,再写一个 maxSlice 方法返回最大值。 + +## 链接 -##链接 - [目录](directory.md) -- 上一节:[分片](07.2.md) -- 下一节:[分片重组](07.4.md) \ No newline at end of file +- 上一节:[切片](07.2.md) +- 下一节:[切片重组](07.4.md) \ No newline at end of file diff --git a/eBook/07.4.md b/eBook/07.4.md index d665729..237608b 100644 --- a/eBook/07.4.md +++ b/eBook/07.4.md @@ -1,4 +1,7 @@ -#7.4 分片重组 +# 7.4 切片重组 + +175 + 我们已经知道slice创建的时候通常比相关数组小,例如 slice1 := make([]type, start_length, capacity) diff --git a/eBook/directory.md b/eBook/directory.md index 3e32c2c..478784d 100644 --- a/eBook/directory.md +++ b/eBook/directory.md @@ -62,6 +62,7 @@ - 7.1 [声明和初始化](07.1.md) - 7.2 [切片](07.2.md) - 7.3 [For-range 结构](07.3.md) + - 7.4 [切片重组](07.4.md) - 第8章:Maps - 第9章:包(package) - 第10章:结构(struct)与方法(method)