Swift 尾随闭包语法

16 min read

一个无名闭包作为一个参数传给一个普通的函数

  • 如果闭包是函数的最后一个参数,那么调用的时候将闭包写在括号函数名后的()后面

    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