簡體   English   中英

Swift函數參數:名稱和對象類型

[英]Swift function Parameter: Name and Object type

我對函數參數的語法有疑問。 以此功能為例:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    //code goes here    
}

在函數定義中,每個參數都有一個變量名和一個冒號,后跟一個對象類型。

在上面的函數中為什么有兩個名字? cellForRowAtIndexPathindexPath

我應該使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM