//: Playground - noun: a place where people can play import UIKit /*---------------------------返回函数类型-----------------------------*/ // 其实就是将函数当为返回值返回 func tier1MailFee(weight:Int) -> Int { // 第一种邮费计算方式 return 1 * weight } func tier2MailFee(weight:Int) -> Int { // 第二种邮费计算方式 return 2 * weight } // 计算最终价格, price为单价, weight为重量 func totalPrice(price:Int, weight:Int) -> Int { // 外部没办法调用chooseMailFeeCalcMethod这个函数 // 通过判断重量, 来选择使用哪种邮费计算方式 func chooseMailFeeCalcMethod(weight:Int) -> (Int) -> Int { return weight <= 10 ? tier1MailFee : tier2MailFee } let mailFeeCalc:(Int) -> Int = chooseMailFeeCalcMethod(weight) return mailFeeCalc(weight) + price * weight } totalPrice(5, weight: 10)