首页 » iOS编程基础:Swift、Xcode和Cocoa入门指南 » iOS编程基础:Swift、Xcode和Cocoa入门指南全文在线阅读

《iOS编程基础:Swift、Xcode和Cocoa入门指南》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 = Dogd.say("woof") // same as saying d.say("woof", times:1)  

如果想要重复,那么就调用say(times:):


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

如果具有外部名的参数有默认值,那就需要按照顺序调用。比如,如果一个函数的声明如下所示:


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

那么,像下面这样调用就是合法的:


doThing(b:5, a:10)  

不过,这可能是Swift的一个疏忽,当然,如果有一个参数没有默认值,那么这么调用就是非法的。因此,我建议不要这么做:请保证调用时实参的顺序与声明时形参的顺序一致。