,,,,函数可以作为一种类型使用,作为类型与其它数据类型没有区别:
,,,,有如下3个函数的定义:
,,,, (1) func rectangleArea(宽度:双,高度:双)→双{
,,,,,,,,,,,,让面积=宽*高
,,,,,,,,,,,,返回面积
}
,,,,,(2)func triangleArea(底:双,高度:双)→双{
,,,,,,,,,,,,让面积=0.5 * *,底部高度
,,,,,,,,,,,,返回面积
}
,,,,,,,, (3) func sayHello () {
,,,,,,,,,,,, println (“Hello World”)
}
,,,,,,,,第一个和第二个函数的返回类型都是(双、双)→双第三个函数返回的类型为()→()
,,,,,,,,函数作为参数类型使用:可以把函数的类型作为另一个函数的返回类型使用:
,,,,,,,,示例:
,,,,,,,,,,,,
,,,,,,,,, func rectangleArea(宽度:双,高度:双)→双{
,,,,,,,,,,,,让面积=宽*高
,,,,,,,,,,,,返回面积
}
,,,,,,,, func triangleArea(底:双,高度:双)→双{
,,,,,,,,,,,,让面积=0.5 * *,底部高度
,,,,,,,,,,,,返回面积
}
,,,,,,,,,,,,, func getArea(类型:字符串)→(双、双)→双{
,,,,,,,,,,,,,,,,,,,,,,,, var returnFunction:(双、双)→Double
switch type {
case "rect":
returnFunction=rectangleArea
case "tria" :
return triangleArea
default:
returnFunction=rectangleArea
}
return returnFunction
}
var area=getArea("tria")
println("TriangleArea:\(area(20,30))")
,null