swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸
swift语言使用闭包表达式的注意事项swift语言入门很简单大学霸
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.