在您的例子,你可以創建一個variable
這也是function
這樣的:
var myStepFunction = chooseStepFunction(true)
myStepFunction(4)
嵌套函數的好處是非常好的。例如,假設您正在構建一個應用程序的計算器,你可以有你的邏輯在一個函數,如下所示:
func doOperation(operation: String) -> ((Double, Double) -> Double)? {
func plus(s: Double, d: Double) -> Double {
return s + d
}
func min(s: Double, d: Double) -> Double{
return s - d
}
switch operation {
case "+":
return plus
case "-" :
return min
default :
return nil
}
}
var myOperationFunction = doOperation("-")?(4, 4) // 0
var myOperationFunction2 = doOperation("+")?(4, 5) //9
在某些情況下,你不允許看到的實施一些功能,或對他們不負責。然後將它們隱藏在其他函數內真的是一個好方法。例如,假設你的同事有責任開發plus
和min
函數,他/她會這樣做,而你只是使用外部函數。
它不同於關閉,因爲在clouser中,你將你的邏輯傳遞給其他邏輯,它會調用你的邏輯。這是一種插件。例如,在調用http請求後,您可以傳遞您希望應用程序在接收服務器響應時所要執行的代碼。
你是說,相比封閉? – rintaro
你有檢查我的答案嗎? –
是的,我期待更多的答案。您將展示如何使用此功能。我在問如何「使用它」。如果您實際使用的項目中有代碼的一部分,這對我理解這個概念會更有幫助。謝謝 – Esqarrouth