[Swift 開發] 柯里化 (Currying) 應用場景

柯里化的代碼,看起來更加的簡潔優雅,提高代碼複用性。

例如我們要用班級和姓名來拼接一個字符串。

func conventionFunc(_ calssName: String,name:String) ->  String {
   
    return "\(calssName) (\(name))"
}

let  aa = conventionFunc("大班", name: "韓梅梅")
let  bb = conventionFunc("大班", name: "李雷")
print(aa)    //大班 (韓梅梅)
print(bb)    //大班 (李雷)

可以發現calssName這個參數相同,可不可以優化呢?

我們在編程的時候,可能函數的參數都一樣。每次都輸入相同的參數看起來不夠優雅,也不夠簡介。我們可以考慮使用柯里化

func curryingFunc(_ calssName: String ) -> (String) ->  String  {
    return {
        value in
        return "\(calssName) (\(value))"
    }
}

let  currying = curryingFunc("大班")
let  b = currying("韓梅梅")
let  c = currying("李雷")
print(currying)     //(Function)
print(b)     //大班 (韓梅梅)
print(c)     //大班 (李雷)

把一個函數,我們拆成多個步驟來實現。

假如班級有60個同學,calssName我們只輸入一次即可,currying("李雷")用起來是不是更佳簡潔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章