在蘋果的書斯威夫特中,我發現這個摘錄:DOC聲明時和方法
類的方法有從功能的重要區別之一。函數中的參數名稱僅在函數中使用,但在調用方法時也會使用方法中的參數名稱(第一個參數除外)。默認情況下,當您調用方法並在方法本身內時,方法的參數名稱相同。您可以指定在方法內部使用的第二個名稱。
我完全不知道這意味着什麼。他們給出的例子沒有澄清任何事情。請有人請給我一個例子嗎? (也許明確地顯示了摘錄提到的區別。)
在蘋果的書斯威夫特中,我發現這個摘錄:DOC聲明時和方法
類的方法有從功能的重要區別之一。函數中的參數名稱僅在函數中使用,但在調用方法時也會使用方法中的參數名稱(第一個參數除外)。默認情況下,當您調用方法並在方法本身內時,方法的參數名稱相同。您可以指定在方法內部使用的第二個名稱。
我完全不知道這意味着什麼。他們給出的例子沒有澄清任何事情。請有人請給我一個例子嗎? (也許明確地顯示了摘錄提到的區別。)
在斯威夫特,你可以定義其參數有一個名字叫做外部時功能,但是當你使用它們作爲函數定義內部變量的另一個名字。這使得你的代碼更具可讀性,就像英文句子而不是代碼。
例如,你可以定義如下一個文件,寫功能:
func writeData(data: NSData,
toFileName fileName: String,
withCompletionHandler completionHandler:() ->()) {
// ...
}
從外面看,你會使用的參數名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:() ->()) {
}
但你並不需要做的這個。如果您沒有提供外部參數名稱,則Swift會假定內部和外部參數名稱相同。
http://www.apeth.com/swiftBook/ch02.html#_external_parameter_names – matt