函数格式:
func 函数名(参数:参数类型)-> 返回值类型{
函数体
return 返回值
}
1、一个函数作为另一个函数返回值
import Cocoa
//函数名(形参:形参类型)->(返回函数形参类型,返回函数返回类型)
func FuncOne()->((Int)->Int){
func FuncTwo(a:Int)->Int{
return a
}
return FuncTwo
}
//value等于返回函数FuncTwo
var value=FuncOne()
value(7)
2、一个函数作为另一个函数形参
import Cocoa
//函数名(形参:形参类型,形参:参数函数参数->参数函数返回值)->(返回函数形参类型,返回函数返回类型)
func FuncOne(funconea:Int,func3:(Int)->Int)-> ((Int)->Int){
func FuncTwo(a:Int)->Int{
return a+FuncThree(functhreea:funconea)
}
//参数函数返回类型
return FuncTwo
}
func FuncThree(functhreea:Int)->Int{
return functhreea
}
//调用函数,{函数名(参数...)}返回函数(参数...)
FuncOne(funconea:2,func3:FuncThree)(1)
3、函数传递可选参数
可选:参数数量可变、参数类型可变
import Cocoa
func FuncOne<N>(funconeas:N...){
for n in funconeas{
print(n,"")
}
}
FuncOne(funconeas: 4,3,5)
FuncOne(funconeas: 4.5, 3.1, 5.6,7.8)