From 3063f18a7890daded266a641155eb12598bc094f Mon Sep 17 00:00:00 2001 From: Phenmod Date: Wed, 30 Oct 2019 20:57:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E4=BA=9B=E5=B0=8F=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=92=8C=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/01_welcome_to_swift/03_a_swift_tour.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/01_welcome_to_swift/03_a_swift_tour.md b/source/01_welcome_to_swift/03_a_swift_tour.md index 879cf8a6..2433ac2a 100755 --- a/source/01_welcome_to_swift/03_a_swift_tour.md +++ b/source/01_welcome_to_swift/03_a_swift_tour.md @@ -145,6 +145,7 @@ if let name = optionalName { > 把 `optionalName` 改成 `nil`,greeting 会是什么?添加一个 `else` 语句,当 `optionalName` 是 `nil` 时给 greeting 赋一个不同的值。 如果变量的可选值是 `nil`,条件会判断为 `false`,大括号中的代码会被跳过。如果不是 `nil`,会将值解包并赋给 `let` 后面的常量,这样代码块中就可以使用这个值了。 + 另一种处理可选值的方法是通过使用 `??` 操作符来提供一个默认值。如果可选值缺失的话,可以使用默认值来代替。 ```swift @@ -241,7 +242,7 @@ greet(person:"Bob", day: "Tuesday") > 练习 > -> 删除 `day` 参数,添加一个参数来表示今天吃了什么午饭。 +> 删除 `day` 参数,在这个欢迎语中添加一个参数来表示今天的特价菜。 默认情况下,函数使用它们的参数名称作为它们参数的标签,在参数名称前可以自定义参数标签,或者使用 `_` 表示不使用参数标签。 @@ -321,7 +322,7 @@ var numbers = [20, 19, 7, 12] hasAnyMatches(list: numbers, condition: lessThanTen) ``` -函数实际上是一种特殊的闭包:它是一段能之后被调取的代码。闭包中的代码能访问闭包作用域中的变量和函数,即使闭包是在一个不同的作用域被执行的 - 你已经在嵌套函数的例子中看过了。你可以使用 `{}` 来创建一个匿名闭包。使用 `in` 将参数和返回值类型的声明与闭包函数体进行分离。 +函数实际上是一种特殊的闭包:它是一段能之后被调取的代码。闭包中的代码能访问闭包作用域中的变量和函数,即使闭包是在一个不同的作用域被执行的——你已经在嵌套函数的例子中看过了。你可以使用 `{}` 来创建一个匿名闭包。使用 `in` 将参数和返回值类型的声明与闭包函数体进行分离。 ```swift numbers.map({ @@ -342,7 +343,7 @@ let mappedNumbers = numbers.map({ number in 3 * number }) print(mappedNumbers) ``` -你可以通过参数位置而不是参数名字来引用参数——这个方法在非常短的闭包中非常有用。当一个闭包作为最后一个参数传给一个函数的时候,它可以直接跟在括号后面。当一个闭包是传给函数的唯一参数,你可以完全忽略括号。 +你可以通过参数位置而不是参数名字来引用参数——这个方法在非常短的闭包中非常有用。当一个闭包作为最后一个参数传给一个函数的时候,它可以直接跟在圆括号后面。当一个闭包是传给函数的唯一参数,你可以完全忽略圆括号。 ```swift let sortedNumbers = numbers.sorted { $0 > $1 }