加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift函数类型

发布时间:2020-12-14 02:19:20 所属栏目:百科 来源:网络整理
导读:函数可以作为一种类型使用,作为类型与其它数据类型没有区别: 有如下3个函数的定义: (1)func rectangleArea(width : Double,height : Double ) - Double { let area = width * height return area } (2)func triangleArea(bottom : Double,height : Double

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


有如下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,a: Double,b: Double) -> Double {


var area = funName(a,b)

return area

}


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读