Day8 return function type and inside function

func tierMailFee (weight:Int) -> Int

{

    return 2*weight

}

 

func tierMailFee2 (weight:Int) -> Int

{

    return 6*weight;

}

 

func chooseMailFeeCalculateMethod( weight:Int) -> (Int)->Int

{

    return weight<=10 ? tierMailFee : tierMailFee2

}

 

func totalPrice( price:Int, weight:Int ) -> Int

{

    let mailFeeCalculate:(Int) -> Int = chooseMailFeeCalculateMethod(weight)

    

    return mailFeeCalculate(weight) //+ price*weight

}

 

totalPrice(3, weight: 11)

 

 

func payTax (salary:Float) -> Float

{

    return 3500*0.2

}

 

func secodPayTax (salary:Float) -> Float

{

    return payTax(3500) + (salary-3500)*0.5

}

 

func totalPayTax (salary:Float) -> (Float)->Float

{

    if salary < 3500 {

        return payTax

    }

    else {

        return secodPayTax

    }

}

 

func showPayTax (salary:Float) -> Float

{

    let totalTax  = totalPayTax(salary)

    return totalTax(salary)

}

 

showPayTax(10000)

 

原文地址:https://www.cnblogs.com/tony0571/p/5381196.html