//基础表现形式
func 函数名(传入参数,多个用逗号隔开)-> 返回值类型 {
//如果没有返回值,可以填 Void,也可以 -> () ,也可以什么都不写,直接函数名(传入参数)后直接跟大括号
}
//实际应用中传入参数可以有以下三种写法
func sum(a: Int,y b: Int,_ c: Int) {
print(a + b + c)
}
// a就正常写法,y写b前面表示外参,外面用y,函数内用b,c前面加 _ 表示外面调用时不显示参数名,如下:
sum(a: 1, y: 2, 3)
函数可以嵌套
// MARK: 函数作为参数传入
funcprintMathResult(mathFunction:(Int,Int)->Int, num1:Int, num2:Int) {
print("The result is \(mathFunction(num1,num2))"+".")
}
// MARK: 函数作为返回值
funcchoosFunction(big:Bool) -> (Int,Int)->Int{
// 如果输入的big是true的话,就返回求最大值的函数,反之返回求最小值的函数。
returnbig ?bigger:smaller
}
// MARK: 设置可变的参数数量
funcminFunction(numbers:Double...) ->Double{
/*
* 定义函数时,如果不能确定传入参数的数量,可通过变量类型后面加入...定义变量参数。
* 一个函数最多能有一个变量参数,且必须是函数表中的最后一个。
* 一个函数如果有一个或多个参数,变量参数一定放在最后。
*/
ifnumbers.count==0{
return0
}else{
vartemp:Double= numbers[0]
fornumberinnumbers {
iftemp>=number {
temp = number
}
}
returntemp
}
}
网友评论