swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸

swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

7.9.2  使用闭包表达式的注意事项swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸

在使用闭包表达式时需要注意以下几点(以下都是以示例7-31来说明的):

1.推断类型

copare()函数的第三个参数是闭包表达式,它的类型为(num:Int,value:Int)->Bool,由于Swift可以推断其参数和返回值的类型,所以->和围绕在参数周围的括号可以省略,如以下的代码swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸:

var v1=copare(array,500,{(num,value) in

return num>value

})

2.省略return

单行表达式闭包可以通过隐藏return关键字来隐式返回单行表达式的结果,可以将上面的例子进行修改swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸:

var v1=copare(array,500,{(num,value) in

num>value

})

3.简写参数名

Swift为内联函数提供了参数名缩写功能,开发者可以通过$0、$1、$2来顺序的调用闭包的参数。如果在闭包表达式中使用参数名称缩写,可以在闭包参数列表中省略对其的定义,并且对应参数名称缩写的类型会通过函数类型进行推断。in关键字也同样可以被省略,因为此时闭包表达式完全由闭包函数体构成,将上面的例子进行修改swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸:

var v1=copare(array, 500, {

$0 > $1

})

4.写在一行

当闭包的函数体部分很短时可以将其写在一行上面,如以下代码:

var v1=copare(array, 500, {$0 > $1})

5.运算符函数

在Swift中String类型定义了关于大于号(>)的字符串实现,其作为一个函数接受两个String类型的参数并返回Bool类型的值。而这正好与以上代码sort函数的第二个参数需要的函数类型相符合。 因此,可以简单地传递一个大于号,Swift可以自动推断出您想使用大于号的字符串函数实现swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸:

var v1=copare(array,500,>)

swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸

Comments are closed.