Swift编程语言的语法



当我试图实现其中一个协议时,我遇到了以下语法。

optional public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?)

有人能解释一下"didFinishWithResult"的含义吗?这是一场争论吗?如果不是,那是什么?

didFinishWithResult是外部参数名称。result是内部的。因此,当您调用该方法时,将使用外部方法,而在该方法中使用内部方法。

在目标C中,方法定义如下,参数名称如下:

- (void)mailComposeController:(MFMailComposeViewController *)controller
      didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

当你把它翻译成swift时,你可以声明外部和内部参数

函数参数既有外部参数名称,也有本地参数名称。外部参数名称用于标记传递给函数调用的参数。在函数的实现中使用了本地参数名称。

默认情况下,第一个参数省略其外部名称,第二个及后续参数使用其本地名称作为外部名称。所有参数都必须具有唯一的本地名称。尽管多个参数可能具有相同的外部名称,但唯一的外部名称有助于提高代码的可读性。

在它支持的本地参数名称之前写一个外部参数名称,用空格分隔:

func someFunction(externalParameterName localParameterName: Int) {
    // function body goes here, and can use localParameterName
    // to refer to the argument value for that parameter
}

来源https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

最新更新