这个函数是计算邮费,然后通过重量来选择邮费规则,计算完应该就是一个整形(通过tier1或tier2返回的),怎么chooseMailFeeCalcMethod这个函数需要返回一个函数类型?
当然是可以的。我们的例子是展示函数类型的使用,所以例子相对简单。但是在一些情况下,返回函数将是更好的设计。这涉及一些函数式编程的内容。如果大家有兴趣,我们可以策划一个相关课程:)
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
}
老师这么改完以后和原来的那个相比有什么弊端或者缺陷?
返回的是tier1或tier2的这个规则的方法而不是计算完的数是吗?