2014-12-07 42 views
9

據我所知,Swift函數在默認情況下具有未命名的參數,但Swift方法不會(不包括第一個參數)。例如,給定以下定義:Swift方法中的多個未命名參數

func foo(a: Int, b: Int) -> Int { 
    return a + b 
} 

class MyClass { 
    func bar(a: Int, b: Int) -> Int { 
     return a + b 
    } 
} 

我要叫foo未命名的參數:

foo(10, 20) // fine 

foo(a: 10, 20) // error 
foo(10, b: 20) // error 
foo(a: 10, b: 20) // error 

,我要打電話bar的第一個參數未命名,並命名爲第二個參數:

MyClass().bar(10, b: 20) // fine 

MyClass().bar(10, 20) // error 
MyClass().bar(a: 10, b: 20) // error 
MyClass().bar(a: 10, 20) // error 

據我所知,我可以通過使用#符號作出任何未命名參數,但我的問題是:有什麼辦法可以使bar未命名的參數?

換句話說,我想以這樣的方式,我可以把它像一個普通的功能申報bar

MyClass().bar(10, 20) 

這是可能的斯威夫特?如果是這樣,怎麼樣?

回答

17

是的,你_前綴的第二個參數的名稱有它是匿名:

class MyClass { 
    func bar(a: Int, _ b: Int) -> Int { 
     return a + b 
    } 
} 
+0

謝謝!這正是我需要的。 – SelectricSimian 2014-12-07 01:16:08

+0

注意:在Swift 4中,你必須在第一個參數前加'_'。 MyClass類{ FUNC巴(a:中等,_ B:智力) - >內部{ 返回A + B } } 變種克= MyClass的() g.bar(3,4) 錯誤:REPL .swift:88:7:錯誤:在調用中缺少參數標籤'a' – 2017-12-15 21:05:55

相關問題