scala - 在 Scala 中,我将如何以无状态、功能性的方式为银行账户建模?

标签 scala functional-programming

在 OO 范式下,你可以有类似的东西

class BankAccount(balance: Double) {
    def deposit(...)
    def withdraw(...)

}

我想知道您如何在功能范式中进行等效操作?

最佳答案

让 BankAccount 类中的每个方法返回一个带有新余额的新 BankAccount 对象。这样,余额就可以是一个不可变的变量。

class BankAccount(balance: Double) {
    def deposit(amount: Double): BankAccount
    def withdraw(amount: Double): BankAccount
}

关于scala - 在 Scala 中,我将如何以无状态、功能性的方式为银行账户建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6798193/

相关文章:

performance - Haskell 等函数式语言或 Scala 等混合语言中的函数开销

C语言。奇怪的函数行为

haskell - 为什么列表仿函数代表不确定性选择的上下文?

java - 将相同的对象添加到上下文和列表中

javascript - 在 Javascript 中映射一组任务

java - 如何以特定帧速率更新 Swing Canvas ?

scala - SBT 0.13 taskKey 宏不适用于 [Unit]?

http - 部分应用程序的 Scalatra 基本身份验证

scala - 从解析日期获取年、月、日

javascript - JavaScript 是否有像 "range()"这样的方法在提供的范围内生成范围?