在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Swift语言中每一个函数都有它特定的数据类型,称其为函数类型 函数类型和基本数据类型一样,可以定义变量或者常量,可以定义函数形参,也可以做为函数的返回值类型
函数类型的格式为:参数列表的数据类型—>返回值类型
<1>func test1(name: String,age: Int)->String{}
函数类型:(String,Int)->String <2>func test2(a: Int){}
函数类型:(Int)->() 或者 (Int)->Void
<3>func test3(){}
函数类型:()->() 或者 ()->Void
定义函数类型的变量 func sumAAndB(a: Int,b: Int) -> Int {//函数类型为(Int,Int)->Int return a + b } var myFunction: (Int,Int)->Int = sumAAndB//myFunction 的类型标注为函数类型
func shapePan(width: Int,height: Int) ->Int { return (height + width) * 2 } myFunction = shapePan //可以将函数赋给相同函数类型的变量
使用函数类型定义函数形参
例子:实现数组中的数据排序: var array = [1,1231,124,54654,10] //数组升序函数 func isBigerSort(oneNum: Int,twoNum: Int)->Bool { return oneNum > twoNum } //数组降序函数 func isSmallerSort(oneNum: Int,twoNum: Int) ->Bool { return oneNum < twoNum } //两个数交换数组中的显示位置的函数 func exchangeNumIndex(inout one: Int,inout two: Int) -> Void { let tmp = one one = two two = tmp } //排序函数,其中method为函数类型的参数 func sortArray(inout arr: [Int],method: (Int,Int)->Bool) { for i in 0..<arr.count - 1 { for j in 0..<arr.count - i - 1 { if method(arr[j],arr[j + 1]) { exchangeNumIndex(&arr[j], two: &arr[j + 1]) } } }
} //实现升序 sortArray(&array, method: isBigerSort)//传入数组地址和相同函数类型的函数 print(array) //实现降序 sortArray(&array, method: isSmallerSort) print(array)
函数类型作为函数的返回值类型
func triangle(length: Int) ->Int { return 3 * length } func square(length: Int) ->Int { return 4 * length } func circle(r: Int) ->Int { return Int(3.14) * r * r } func getShapeMeter(type: String) ->(Int)->Int { switch type { case "triangle": return triangle case "square": return square default: return circle } } var myFunc = getShapeMeter("triangle") print(myFunc(10)) 函数类型作为函数形参,通过判断形参对应的方法能使一个函数实现不同的功能 |
请发表评论