声明函数和其他脚本语言有相似的地方,比较明显的地方是声明函数的关键字
//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)