[Swift 开发] 柯里化 (Currying) 应用场景

本文介绍如何通过柯里化技术优化重复参数的函数调用,使得代码更加简洁优雅,并提高了代码复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

柯里化的代码,看起来更加的简洁优雅,提高代码复用性。

例如我们要用班级和姓名来拼接一个字符串。

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("李雷")用起来是不是更佳简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值