一个无名闭包作为一个参数传给一个普通的函数
-
如果闭包是函数的最后一个参数,那么调用的时候将闭包写在括号函数名后的
()
后面func sayHi(str1:String, str2:String, closure:(String,String)->String)->String{ return closure(str1,str2); } let message = sayHi(str1: "hello", str2: "world") { (str1:String, str2:String)-> (String) in return str1 + " " + str2 } print(message) log: hello world 复制代码
-
如果函数只有一个参数且为闭包,那么调用的时候括号函数名后有
()
可以不写func sayHi(closure:(String)->())-> Void { print("只有一个参数哦") closure("hello world") } sayHi { (str:String) in print(str) } log: 只有一个参数哦 hello world