/**
函数 格式
// 参数列表 (对外名 内部使用名 : 参数类型 , 对外名 内部使用名 : 参数类型)
闭包格式
// 声明一个 参数是 闭包 的函数
// func 函数名(闭包名 : (参数名 : 参数类型 , 参数名 : 参数类型) ->(返回值)){代码}
// 调用 参数中带闭包 的函数
// 函数名 { (参数列表)) -> (返回值类型) in 闭包代码 }
1, 尾随参数, 没有值的括号可省, 没有返回值是, -> in 都课省
2, in 的作用是, 分割开 参数和代码
// 调用 闭包
返回值 = 闭包名 (参数列表)
2, 参数列表, 没有对外名
*/
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
text1(AA: 11, BB: 22)
// 没有参数,没有返回值
text2 { () -> () in
print("\n22222 " )
}
// 当闭包是函数的最后一个参数, 而且没有参数和返回值时可以简写
// text2 {
// print("\n22222 " )
// }
//闭包 有参无返回值
// 调用 带有 有参无返回值的闭包 的函数
// 函数名 { (参数名,参数名) -> in 代码 }
text3 { (aa, bb) -> () in
print("\naa + bb")
}
// 函数名 { (参数列表)) -> (返回值类型) in 闭包代码 }
text4 { (aa , bb ) -> (Int) in
print("\n\n")
print(aa + bb)
return aa + bb
}
}
// 有参有返回值
func text4(finish : (aa : Int , bb : Int) ->(Int)){
print("\n 有参有返回值\n")
let result = finish(aa: 44, bb: 55)
print("\n")
print(result)
}
// 带有 有参无返回值的闭包 的函数
// func 函数名(闭包名 : (参数名 : 参数类型 , 参数名 : 参数类型) ->(返回值)){代码}
func text3(finish : (aa : Int , bb : Int) -> ()){
print("\n无参无返回值")
// 调用闭包函数
finish(aa: 22,bb: 33)
}
// 闭包 没有参数, 没有返回值
// func text2(闭包名 : (参数列表) -> (返回值)){代码}
func text2(finish : () -> ()){
print("\n11111 ")
// 调用闭包函数
finish()
}
// 函数
// func 函数名(参数列表) ->返回值{代码}
// 参数列表 (对外名 内部使用名 : 参数类型 , 对外名 内部使用名 : 参数类型)
func text1(AA aa : Int,BB bb : Int){
print(aa + bb )
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}