码迷,mamicode.com
首页 > 编程语言 > 详细

Swift函数类型

时间:2015-03-14 20:13:15      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:swift函数类型

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


    有如下3个函数的定义:


    (1)func rectangleArea(width : Double, height : Double ) -> Double {

            let area = width * height

            return area


}


      (2)func triangleArea(bottom : Double, height : Double ) -> Double {

            let area = 0.5 * bottom *  height

            return area


}


        (3)func sayHello(){

            println("Hello World")


}


        第一个和第二个函数的返回类型都是(Double,Double) -> Double,第三个函数返回的类型为() ->()



        函数作为参数类型使用:可以把函数的类型作为另一个函数的返回类型使用:


        示例:


            

         func rectangleArea(width : Double, height : Double ) -> Double {

            let area = width * height

            return area


}



        func triangleArea(bottom : Double, height : Double ) -> Double {

            let area = 0.5 * bottom *  height

            return area


}



             func getArea(type : String) -> (Double,Double) ->Double {

                        var returnFunction :(Double,Double) -> 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))")


                

                var area = getArea("rect")

                println("TriangleArea:\(area(20,30))")



        可以把函数类型作为其它函数的参数类型使用:

            

        示例:

            

     func rectangleArea(width : Double, height : Double ) -> Double {

            let area = width * height

            return area


}



        func triangleArea(bottom : Double, height : Double ) -> Double {

            let area = 0.5 * bottom *  height

            return area


}



          func getAreaByFunc(funcName : (Double,Double) -> Double, a: Double,b: Double) -> Double {


                var area = funName(a,b)

                return area

}


            var result :Double = getAreaByFunc(rectangleArea,20,30)


                

本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1620360

Swift函数类型

标签:swift函数类型

原文地址:http://linjohn.blog.51cto.com/1026193/1620360

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!