声明函数和其他脚本语言有相似的地方,比较明显的地方是声明函数的关键字
//python
def functionName(arg1,arg2) //函数名-参数表
return value //返回值类型
//Js
function functionName(arg1,arg2) //函数名-参数表 {
retrun value; //返回值
}
//swift
func functionName(arg1: String,arg2: String) -> String {
return "\(arg1) and \(arg2)"
}
functionName("See","Ya")
swift也出现了Python中的组元,可以通过一个组元返回多个值。
func getPersonInfo()-> (String,String) {
return ("name","address")
}
getPersonInfo()
传递可变参数,函数以数组的形式获取参数
func alert(messages: String...) -> String {
var string: String? = "";
for message in messages {
string?.extend(message)
}
return string!
}
alert("hello","swift")
swift中函数可以嵌套,被嵌套的函数可以访问外部函数的变量。可以通过函数的潜逃来重构过长或者太复杂的函数。
//求平均值
func average(values: Double...) -> Double {
assert(values.count != 0,"参数不可以为空")//除数不可以为零
var count: Double = 0
func add(subValue: Double){
count += subValue
}
for subValue in values {
add(subValue)
}
return (count / Double(values.count))
}
average(10.0,20.0)