为了账号安全,请及时绑定邮箱和手机立即绑定

老师chooseMailFeeCalcMethod这个函数返回Int为什么就错了

这个函数是计算邮费,然后通过重量来选择邮费规则,计算完应该就是一个整形(通过tier1或tier2返回的),怎么chooseMailFeeCalcMethod这个函数需要返回一个函数类型?

正在回答

3 回答

当然是可以的。我们的例子是展示函数类型的使用,所以例子相对简单。但是在一些情况下,返回函数将是更好的设计。这涉及一些函数式编程的内容。如果大家有兴趣,我们可以策划一个相关课程:)

0 回复 有任何疑惑可以回复我~
#1

凉宫的忧郁 提问者

非常感谢!
2015-01-12 回复 有任何疑惑可以回复我~

func tier1MailFee( weight:Int ) -> Int {

    return 1*weight

}

func tier2MailFee( weight:Int) -> Int {

    return 2*weight

}


func chooseMailFeeCalcMethod(weight:Int) ->Int {

    return weight <= 10 ? tier1MailFee(weight) : tier2MailFee(weight)

}

func totalPrice( price:Int , weight:Int ) -> Int {

    let mailFeeCalc:Int = chooseMailFeeCalcMethod(weight)

    return mailFeeCalc + price*weight

}

老师这么改完以后和原来的那个相比有什么弊端或者缺陷?

0 回复 有任何疑惑可以回复我~

返回的是tier1或tier2的这个规则的方法而不是计算完的数是吗?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

老师chooseMailFeeCalcMethod这个函数返回Int为什么就错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信