校正+翻译 From SketchK

主要内容
1 `控制流`章节中的`while循环`一节中的代码更新(废弃了++)
2 `控制流`章节中的`repeat-while循环`一节中的代码更新(废弃了++)
3 `控制流`章节中的`if`代码有误(原文中与当前翻译中数值不相符)
4 `函数`章节中`常量与变量参数`一节已经被废弃,进行了删除操作
5 `函数`章节中`输入与输出参数`一节内容进行更新(原文与当前翻译中的内容不相符)
6 `闭包`章节中`单表达式闭包隐式返回`一节内容翻译有误(原文与当前翻译中的内容不相符)
7 `闭包`章节中`运算符函数`一节内容翻译有误(原文与当前翻译中的内容不相符)
8 `闭包`章节中`尾随闭包`一节内容更新(废弃了var修饰符,原文与当前翻译中内容不符,)
This commit is contained in:
Sketchk
2016-05-12 20:50:37 +08:00
parent 24488696b5
commit 4976c25347
7 changed files with 30 additions and 53 deletions

View File

@ -11,6 +11,9 @@
> 2.1
> 翻译:[100mango](https://github.com/100mango), [magicdict](https://github.com/magicdict)
> 校对:[shanks](http://codebuild.me)
>
> 2.2
> 翻译+校对:[SketchK](https://github.com/SketchK) 2016-05-12
本页包含内容:
@ -213,7 +216,8 @@ let numbers = [16, 58, 510]
```swift
let strings = numbers.map {
(var number) -> String in
(number) -> String in
var number = number
var output = ""
while number > 0 {
output = digitNames[number % 10]! + output
@ -227,7 +231,7 @@ let strings = numbers.map {
`map(_:)`为数组中每一个元素调用了闭包表达式。您不需要指定闭包的输入参数`number`的类型,因为可以通过要映射的数组类型进行推断。
在该例中,闭包`number`参数被声明为一个变量参数(变量的具体描述请参看[常量参数和变量参数](./06_Functions.html#constant_and_variable_parameters)),因此可以在闭包函数体内对其进行修改,而不用再定义一个新的局部变量并将`number`的值赋值给它。闭包表达式指定了返回类型为`String`,以表明存储映射值的新数组类型为`String`
在该例中,局部变量`number`的值由闭包中的`number`参数获得,因此可以在闭包函数体内对其进行修改,(闭包或者函数的参数总是固定的),闭包表达式指定了返回类型为`String`,以表明存储映射值的新数组类型为`String`
闭包表达式在每次被调用的时候创建了一个叫做`output`的字符串并返回。其使用求余运算符(`number % 10`)计算最后一位数字并利用`digitNames`字典获取所映射的字符串。