有关在调用时和方法内使用方法参数名称的Doc语句

时间:2015-05-04 03:12:49

标签: swift parameters

在Apple关于Swift的书中,我发现了这段摘录:

  

类上的方法与函数有一个重要区别。函数中的参数名称仅在函数内使用,但在调用方法时也使用方法中的参数名称(第一个参数除外)。默认情况下,当您调用方法并在方法本身内时,方法的参数名称相同。您可以指定在方法中使用的第二个名称。

我完全不知道这意味着什么。他们给出的例子并没有澄清任何事情。有人可以请给我一个例子吗? (也许明确地表明摘录提到的区别。)

1 个答案:

答案 0 :(得分:2)

在Swift中,您可以定义一个函数,其参数在外部调用时具有一个名称,但在函数定义中将它们用作变量时,可以使用另一个名称。这使您的代码更具可读性,如英语句子而不是代码。

例如,您可以定义文件写入功能,如下所示:

toFileName

从外部,您将使用参数名称withCompletionHandlerself.writeData(data, toFileName: "FileName.txt", withCompletionHandler: nil) 调用该函数。

data

但是,在定义文件写入行为的函数本身中,您需要访问变量名为fileNamecompletionHandlerfunc 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会假定内部和外部参数名称相同。