斯威夫特函数类型

,,,,函数可以作为一种类型使用,作为类型与其它数据类型没有区别:


,,,,有如下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

斯威夫特函数类型