【发布时间】:2017-02-28 18:59:09
【问题描述】:
在学习 Scala 时,我学到的第一件事就是每个函数都会返回一些东西。没有“void”-function/method,例如在 Java 中。因此,许多 Scala 函数在数学上都是真正的函数,并且对象可以在很大程度上保持无状态。
现在我了解到,actor 模型是 Scala 等函数式语言中非常流行的模型。然而,actor 提倡一种即发即弃的编程风格,调用者通常不希望被调用者直接回复消息(使用“询问”/“?”方法时除外)。因此,actor 需要记住某种状态。
假设 Actor 模型更像是可伸缩性和可维护性之间的权衡(由于其状态性),我是否正确,有时甚至可以被视为反模式?
【问题讨论】:
-
Unit是否或多或少对应于 Java 的void? -
" 没有“void”函数/方法,例如在 Java 中。因此许多 Scala 函数在数学上是真正的函数,并且对象可以在很大程度上保持无状态。第二点不是从第一点得出的。无状态对象和真正的函数与“void”类型的缺失毫无关系(无论如何,正如@rethab 指出的那样,Unit 是 Scala 的 void)。
-
嗯 iirc ask 没有阻塞。它有一个超时,但它没有阻塞。
标签: scala akka actor anti-patterns stateful