///這是Function
func 方法名(參數1, 參數2) -> 回傳型別{
程式碼區塊
}
///這是Closure
{ (參數1, 參數2) -> 回傳型別 in
程式碼區塊
}
/// 宣告帶有Closure參數的方法
func getMemberBonus(completionHandler: ((Int)->Void)?){
if let bonus = bonus{
completionHandler?(bonus)
}
}
/// 呼叫方法範例1 <--- 一般的寫法
getMemberBonus(completionHandler: {
bonus in
printf("我有\(bonus)購物金")
})
/// 呼叫方法範例2 <--- TrailingClosure寫法
getMemberBonus{ bonus in
printf("我有\(bonus)購物金")
}
//單一Closure當結尾參數 - 使用TrailingClosure
UIView.animateWithDuration(1.0) {
self.myView.alpha = 0
}
//多個Closure當結尾參數 - 禁止使用TrailingClosure
UIView.animateWithDuration(1.0,
animations: {
self.myView.alpha = 0
},
completion: { finished in
self.myView.removeFromSuperview()
}
)