老師chooseMailFeeCalcMethod這個(gè)函數(shù)返回Int為什么就錯(cuò)了
這個(gè)函數(shù)是計(jì)算郵費(fèi),然后通過(guò)重量來(lái)選擇郵費(fèi)規(guī)則,計(jì)算完應(yīng)該就是一個(gè)整形(通過(guò)tier1或tier2返回的),怎么chooseMailFeeCalcMethod這個(gè)函數(shù)需要返回一個(gè)函數(shù)類型?
這個(gè)函數(shù)是計(jì)算郵費(fèi),然后通過(guò)重量來(lái)選擇郵費(fèi)規(guī)則,計(jì)算完應(yīng)該就是一個(gè)整形(通過(guò)tier1或tier2返回的),怎么chooseMailFeeCalcMethod這個(gè)函數(shù)需要返回一個(gè)函數(shù)類型?
2015-01-03
舉報(bào)
2015-01-03
當(dāng)然是可以的。我們的例子是展示函數(shù)類型的使用,所以例子相對(duì)簡(jiǎn)單。但是在一些情況下,返回函數(shù)將是更好的設(shè)計(jì)。這涉及一些函數(shù)式編程的內(nèi)容。如果大家有興趣,我們可以策劃一個(gè)相關(guān)課程:)
2015-01-03
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
}
老師這么改完以后和原來(lái)的那個(gè)相比有什么弊端或者缺陷?
2015-01-03
返回的是tier1或tier2的這個(gè)規(guī)則的方法而不是計(jì)算完的數(shù)是嗎?