函数实现的契约——线程安全与透明引用

透明引用:函数的返回值只依赖于其输入值的特性。

使用相同的 x 值多次调用sinx,如果系统每次都重新进行一次计算将会是极大的浪费。即使在“纯粹”的函数库中,也常常执行内部优化,如使用缓存来记住之前的计算结果。但缓存引入了副作用,因此缓存的状态会被修改。然而,这种状态的改变对用户来说是不可见的(除非影响性能的意义)。函数的实现只需要负责达到“契约”即可,也即达到线程安全与透明引用

参考《Scala程序设计》第二版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值