swift argument type() - > ()

时间:2015-11-10 20:52:48

标签: swift types arguments

func speak(text:String, onComplete:()->()) {

    mySpeechUtterance = AVSpeechUtterance(string: text)
    mySpeechSynthesizer.speakUtterance(mySpeechUtterance)

    onComplete()
}

我的问题是:我怎么称呼这种方法?

speechSynthesizer.speak(actions[0], onComplete: "here")

2 个答案:

答案 0 :(得分:0)

有很多选择。在这种情况下最简单的是考虑onComplete是下一个闭包的最后一个闭包:

speechSynthesizer.speak(actions[0]) {
  # onComplete code goes here
}

关于问题中函数定义的注释。应该是

func speak(text:String, onComplete: () -> Void) {...} 

答案 1 :(得分:0)

通过关闭。

speechSynthesizer.speak(actions.first) {
    // code to be executed after speaking
}

这与

相同
speechSynthesizer.speak(actions.first, onComplete: {
    // code to be executed after speaking
})

但显然,尾随闭包语法看起来更清晰。

说明:

  1. 第一部分()表示“没有参数的函数”,
  2. 第二部分-> ()表示“没有返回值”。