
44
|
第
2
章
全局
print
函数的第
1
个参数就是个可变参数,因此可以通过一条命令输出多个值:
print("Mannie", 3, true) // Mannie 3 true
默认参数对输出还做了进一步的细化。默认的
separator:
是个空格(当提供了多个值),
默认的
terminator:
是个换行符;你可以修改它们:
print("Mannie", "Moe", separator:", ", terminator: ", ")
print("Jack")
// output is "Mannie, Moe, Jack" on one line
遗憾的是,
Swift
语言中有一个陷阱:没办法将数组转换为逗号分隔的参数列表(相
比于
Ruby
中的
splat
)。如果一开始就有一个某种类型的数组,那么你不能在需要
该类型可变参数的地方使用它。
2.6
可忽略参数
局部名为下划线的参数会被忽略。调用者必须要提供一个实参,不过函数体中并没有它
的名字,因此无法引用。比如:
func say(s:String, times:Int, loudly _:Bool) {
函数体中无法使用
loudly
参数,不过调用者还是需要提供第
3
个参数:
say("hi", times:3, loudly:true)
声明不需要为忽略的参数提供外部名:
func say(s:String, times:Int, _:Bool) {
不过调用者必须要提供:
say("hi", times:3, true)
该特性的目的是什么呢?它并非为了满足编译器的要求,因为如果函数体中没有引用某 ...