问答详情
源自:7-8 Swift-返回函数类型和函数嵌套

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

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

提问者:凉宫的忧郁 2015-01-03 01:57

个回答

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

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

  • 凉宫的忧郁
    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的这个规则的方法而不是计算完的数是吗?