0

我正在尝试https://doc.akka.io/docs/akka/current/distributed-data.html#using-the-replicator上的官方示例 (此页面上的第一个 scala 示例)
但是当我更改时它似乎很奇怪我的代码一点点。

我录制了一个视频我在代码中所做的更改。我所做的唯一更改是第 16 行的变量名称。从 DataKey 到 dataKey。我只是重命名了它。 https://photos.app.goo.gl/CZrnNZlW85e9MaF73

现在的问题是它为什么会发生。
在这个例子中,我不能使用大写作为 var 的第一个字符???
请帮我弄清楚。非常感谢。

Akka 版本:2.5.9
Scala 版本:2.11.12
IDE:IntelliJ IDEA 2017.3.3 社区版

4

2 回答 2

0

关于与 的模式匹配@@允许您在匹配后处理对象本身。在您的示例中,您检查变量c,如果该变量是一个对象,Changed(DataKey)那么您可以通过对象本身DataKey的方法检索get

 case c @ Changed(DataKey) ⇒
      val data = c.get(DataKey)
于 2018-01-31T07:55:48.680 回答
0

我终于找到问题的答案了! https://www.safaribooksonline.com/library/view/programming-scala-2nd/9781491950135/ch04.html

在编写案例条款时,需要牢记一些规则和陷阱。编译器假定以大写字母开头的术语是类型名称,而以小写字母开头的术语假定为将保存提取或匹配值的变量的名称。

在 case 子句中,以小写字母开头的术语被假定为将保存提取值的新变量的名称。要引用先前定义的变量,请将其括在反引号中。相反,以大写字母开头的术语被假定为类型名称。

于 2018-01-31T11:12:40.973 回答