Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
7.4.3 设定参数默认值Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
在定义函数的时候,可以为参数设定默认值。这样,在调用的时候,就不用再传递该参数的值。
【示例7-9】以下的代码就为start和end参数分别定义了默认值0和5,其功能是输出0到5的数值。代码如下:
import Foundation
//声明定义函数
func fun(start:Int=0,end:Int=5){
var i=start
for i;i<=end;++i{
println(i)
}
}
fun() //调用
代码中,函数fun()调用的时候没有传递任何参数值。这是由于定义函数fun()时参数start和end都有默认值,所以调用的时候就可以不传递参数。运行结果如下所示Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸:
0
1
2
3
4
5
Program ended with exit code: 0
注意:在使用默认值是需要注意以下几点Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸:
(1)定义时,将使用默认值的参数放在函数的参数列表的末尾。这确保了调用函数时候, 不会因为省略参数值而影响不具备默认值的参数的顺序。
(2)调用时,如果参数的默认值已经被设置,可以省略该参数的传值。
(3)如果开发者设定了默认值,但在调用时想要改变默认值,也可以继续赋值。
【示例7-10】以下代码输出3到8之间的数值,包括3和8。代码如下:
import Foundation
func fun(start:Int=0,end:Int=3){
var i=start
for i;i<=end;++i{
println(i)
}
}
println(“使用默认值范围”)
fun()
println(“使用改变后的范围”)
fun(start:3,end:8) //改变了默认值
在代码中,第一次调用使用了参数的默认值,第二次调用改变了参数的默认值。运行结果如下Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸:
使用默认值范围
0
1
2
3
使用改变后的范围
3
4
5
6
7
8
Program ended with exit code: 0
在为参数设定默认值后,Swift会自动为该参数提供了同名的外部参数名。如果调用时需要改变默认值,必须使用外部参数,不能直接赋值。否则,就会出现错误,如以下的代码:
fun(3,8)
在此代码中,对start和end进行了直接赋值,所以导致程序错误,其错误信息如下所示:
Missing argument labels ‘start:end:’ in call
7.4.4 为外部参数设置默认值Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
开发者也可以对外部参数设置默认值。这时,调用的时候,也可以省略参数传递。
【示例7-11】以下的代码就为外部参数toString、withJoiner设置了默认的参数”Swift”和”—“。代码如下:
import Foundation
func join(string s1: String, toString s2: String=”Swift”, withJoiner joiner:String=”—“){
println(“\(s1)\(joiner)\(s2)”)
}
join(string:”Hello”)
由于toString和withJoiner已经设置了默认值,所以调用的时候就省略对两个参数的传值。运行结果如下所示:
Hello—Swift
Program ended with exit code: 0
7.4.5 可变参数Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
使用可变参数,可以使一个参数接受零个或多个指定类型的值。设定一个可变参数需要在参数类型名后添加“…”。
【示例7-12】下面代码使用可变参数计算任意数字的算术平均值。代码如下:
import Foundation
func average(numbers: Double…){
var total: Double = 0
for number in numbers {
total += number
}
println(total/Double(numbers.count))
}
average(1, 2, 3, 4, 5)
average(3, 8, 19)
运行结果如下所示:
3.0
10.0
Program ended with exit code: 0
在使用可变参数时,需要注意以下几点:
1.只有一个可变参数
在一个函数中,可变参数只可以有一个。否则,就会出现错误。如下代码:
func average(numbers: Double…,aa:Int…){
…
}
在一个函数中出现了两个可变参数number和aa,导致程序出现了如下的错误提示信息:
‘…’ must be on the last parameter
2.可变参数必须放在最后
可变参数不管在什么时候都必须放在所有参数之后,即作为最后一个参数。否则,就会出现错误,如下代码:
func average(numbers: Double…,aa:Int){
…
}
在此代码中可变参数numbers放在了aa参数之前,导致程序出现了如下的错误信息:
‘…’ must be on the last parameter
Swift 1.1语言函数参数的特殊情况可变参数为外部参数设置默认值设定参数默认值Swift 1.1语言快速入门大学霸
Comments are closed.