Swift 函数也有类型type


函数在Swift里面和其他类一样也包含类型属性TYPE, 就像数字类型Int,字符类型Character

下面例子,他们的类型就是 ( Int , Int ) -> Int


之所以这样设计,你可以方便的把函数作为参数,作为变量,也可以作为返回值:


import UIKit
import CoreSpotlight



func add(_ a:Int,_ b:Int) -> Int{
    return a+b
}

func multiply(_ a:Int,_ b:Int) -> Int{
    return a*b
}


var doMath:(Int,Int)->Int
doMath=add
doMath=multiply


func jiaOrCheng(_ something:(Int,Int)->Int,_ a:Int,_ b:Int){
    print("\(something(a,b))")
}

jiaOrCheng(add,1,2)


func JiaOrJian(jiaBuJia:Bool) -> (Int) -> Int{
    func jia(_ a:Int)->Int { return a + 1 }
    func jian(_ b:Int)->Int { return b - 1 }
    return jiaBuJia ? jia : jian
}

var count = -3 //计算从count到0腰加几次
//严重注意,平常func作为变量传递时,func不带(),如果带了(),那么传递到是其返回值
//countSteps是赋值给了 (Int)->Int
let countSteps = JiaOrJian(jiaBuJia: count < 0)

while count != 0 {
    print(count)
    count = countSteps(count)
}

//返回
-3
-2
-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值