swift中的下划线的作用,用于忽略外部参数名,一般第一个参数的外部名是被自动忽略的
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
funcOne(name: "bob", age: 19, classes: 30)
funcTwo(name: "lili", 20, 19)
}
//未使用下划线忽略外部名
@objc func funcOne(name:String,age:Int = 20,classes:Int = 2){
print("add:name = \(name),age = \(age),classes = \(classes)")
}
//使用下划线忽略外部名
@objc func funcTwo(name:String,_ age:Int = 20,_ classes:Int = 2){
print("add:name = \(name),age = \(age),classes = \(classes)")
}
swift闭包说明:
1.根据上下文判断参数和返回值的类型
2.从单行表达式闭包中隐式返回,可以省略return 或者 省略in
parameters:参数
{(parameters) -> return type in
parameters
}
//最简单的闭包
let b = {
print("闭包")
}
3.可以使用简化的参数如 $0 $1 意为从0或者1开始
4.尾随闭包:是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用
var result3 = names.sorted(){$0<$1}
print(result3)
//用变量记录函数 (带参数的闭包)
//带有参数的闭包
//参数返回值 实现代码 {形参->返回值 in 代码}
//带参数待返回值的闭包
let countNum = {(num1:Int,num2:Int)->Int in
return num1+num2;
}
let count1 = countNum(2,3)