讀古今文學網 > iOS編程基礎:Swift、Xcode和Cocoa入門指南 > 2.4 默認參數值 >

2.4 默認參數值

參數可以有一個默認值。這意味著調用者可以完全省略參數,不為其提供實參;那麼,其值就是默認值。

要想提供默認值,在聲明中的參數類型後追加一個=號和默認值:


class Dog {
    func say(s:String, times:Int = 1) {
        for _ in 1...times {
            print(s)
        }
    }
}  

事實上,現在有兩個函數,分別是say與say(times:)。如果只想說一次,那麼你可以直接調用say,同時times:參數值1會提供給你:


let d = Dog
d.say("woof") // same as saying d.say("woof", times:1)  

如果想要重複,那麼就調用say(times:):


let d = Dog
d.say("woof", times:3)  

如果具有外部名的參數有默認值,那就需要按照順序調用。比如,如果一個函數的聲明如下所示:


func doThing (a a:Int = 0, b:Int = 3) {}  

那麼,像下面這樣調用就是合法的:


doThing(b:5, a:10)  

不過,這可能是Swift的一個疏忽,當然,如果有一個參數沒有默認值,那麼這麼調用就是非法的。因此,我建議不要這麼做:請保證調用時實參的順序與聲明時形參的順序一致。