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