• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

8函数类型——《Swift3.0从入门到出家

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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))

函数类型作为函数形参,通过判断形参对应的方法能使一个函数实现不同的功能


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOS开发Swift篇—(八)函数(2)发布时间:2022-07-13
下一篇:
iOSswift版本无限滚动轮播图发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap