函数式编程:原理、优势与实践
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
函数式编程:纯函数与实践优势
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



