[英]Swift function Parameter: Name and Object type
我對函數參數的語法有疑問。 以此功能為例:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
//code goes here
}
在函數定義中,每個參數都有一個變量名和一個冒號,后跟一個對象類型。
題
在上面的函數中為什么有兩個名字? cellForRowAtIndexPath
和indexPath
。
我應該使用indexPath
變量嗎?
這里涉及什么概念?
在objective-c(這個概念也在swift中實現)中,有一些稱為“命名”參數的東西可以幫助您了解為其提供功能所需的信息類型。 indexPath
是你在函數中使用的實際變量,而cellForRowAtIndexPath
只不過是一個命名參數,告訴你這里有什么。 我希望有所幫助!
cellForRowAtIndexPath
是實際indexPath
參數的命名 (或外部)參數,也稱為內部參數。 命名參數是您在調用函數時使用的參數。 簡而言之,您可以將參數命名為與實際輸入變量名稱不同的參數。
一個簡化的例子
在下面的例子中,我創建了一個帶有germanShepherd
命名參數的簡單對象:
func getDog(barks: Bool, germanShepherd dog: String) {}
然后當我調用我使用的函數時:
getDog(true, germanShepherd: myValue)
在我的簡單示例中, 命名參數可以幫助消除“dog”參數的歧義,就像cellForRowAtIndexPath
有助於消除indexPath
參數的歧義indexPath
。
刪除命名參數
您還可以選擇使用下划線代替命名參數來刪除命名參數,如下所示:
func getDog(barks: Bool, _ dog: String) {}
getDog(true, "yes")
當然這在Swift 3中都有變化!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.