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

来源:7-8 Swift-返回函数类型和函数嵌套

凉宫的忧郁

2015-01-03 01:57

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

写回答 关注

3回答

  • l1uyub0b0b0
    2015-01-03 23:54:10
    已采纳

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

    凉宫的忧郁

    非常感谢!

    2015-01-12 15:40:42

    共 1 条回复 >

  • 凉宫的忧郁
    2015-01-03 02:02:18

    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

    }

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

  • 凉宫的忧郁
    2015-01-03 01:59:33

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

玩儿转Swift

这套教程比任何的Swift中文教程深入,并且演示示例更丰富

57181 学习 · 511 问题

查看课程

相似问题