3、函数式编程:原理、优势与实践

函数式编程:纯函数与实践优势

函数式编程:原理、优势与实践

1. 函数式编程的优势:消除副作用

函数式编程的解决方案是消除副作用,让 buyCoffee 函数除了返回 Coffee 之外,还将费用作为一个值返回。将费用发送给信用卡公司进行处理、保存记录等操作将在其他地方处理。以下是一个函数式解决方案的示例:

class Cafe:
    def buyCoffee(cc: CreditCard): (Coffee, Charge) =
        val cup = Coffee()
        (cup, Charge(cc, cup.price))

这里,我们将创建费用的操作与处理或解释该费用的操作分离开来。 buyCoffee 函数现在会返回一个 Charge 值和一杯 Coffee 。稍后我们将看到,这使得我们可以更轻松地重用该函数,用一次交易购买多杯咖啡。

1.1 Charge 类

Charge 是我们创建的一个数据类型,包含一张 CreditCard 和一个金额,并配备了一个方便的 combine 函数,用于合并使用同一张信用卡的费用:

case class Charge(cc: CreditCard, amount: Double):
    def 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值