在Apple关于Swift的书中,我发现了这段摘录:
类上的方法与函数有一个重要区别。函数中的参数名称仅在函数内使用,但在调用方法时也使用方法中的参数名称(第一个参数除外)。默认情况下,当您调用方法并在方法本身内时,方法的参数名称相同。您可以指定在方法中使用的第二个名称。
我完全不知道这意味着什么。他们给出的例子并没有澄清任何事情。有人可以请给我一个例子吗? (也许明确地表明摘录提到的区别。)
答案 0 :(得分:2)
在Swift中,您可以定义一个函数,其参数在外部调用时具有一个名称,但在函数定义中将它们用作变量时,可以使用另一个名称。这使您的代码更具可读性,如英语句子而不是代码。
例如,您可以定义文件写入功能,如下所示:
toFileName
从外部,您将使用参数名称withCompletionHandler
和self.writeData(data, toFileName: "FileName.txt", withCompletionHandler: nil)
调用该函数。
data
但是,在定义文件写入行为的函数本身中,您需要访问变量名为fileName
,completionHandler
和func writeData( ... ) {
let successful = SomeFileWriter.writeData(data, fileName: fileName)
if successful == true {
completionHandler()
}
}
的参数。
func writeData(#data: NSData, #fileName: String, #completionHandler: () -> ()) {
}
如果您希望外部和内部参数名称相同,则可以在参数名称前面明确使用哈希标记:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
但你不需要这样做。如果您没有提供外部参数名称,Swift会假定内部和外部参数名称相同。