Swift编程语言的语法

问题描述:

当我试图实现协议之一时,我遇到以下语法。Swift编程语言的语法

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

任何人都可以解释“didFinishWithResult”的含义吗?这是一个争论吗?如果不是什么?

didFinishWithResult是外部参数名称。 result是内部的。所以,当你调用这个方法的时候,就会使用外部的方法,并且在方法中使用内部的方法。

+1

这可以让你有_one_名字是有道理的函数的调用者,以及在实现函数时有意义的另一个名称。 – gnasher729

在目标C的方法被定义和参数名称如下:

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

当翻译成迅速可以声明外部和内部参数

功能参数有两个外部参数名称和本地参数名称。外部参数名称用于标记传递给函数调用的参数。在该函数的实现中使用本地参数名称。

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

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

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