Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Scala,为什么';案例对象';而不仅仅是';对象';?_Scala_Akka - Fatal编程技术网

在Scala,为什么';案例对象';而不仅仅是';对象';?

在Scala,为什么';案例对象';而不仅仅是';对象';?,scala,akka,Scala,Akka,我阅读并理解,case类是发送参数并创建多个对象,而case对象不发送任何参数并使用单个对象。所以这将通过对象实现,也就是为什么案例对象 为什么案例对象重要,何时重要?我已经看过这篇文章了,但我不明白为什么案例对象 嗯。。。Scala中的对象可以被“粗略地”解释为匿名类的实例。现在案例对象和对象的区别在于匿名类是案例类还是仅仅是类 更清楚地说, object A // is roughly equivalent to something like class AnonymousClass12

我阅读并理解,
case类
是发送参数并创建多个对象,而
case对象
不发送任何参数并使用单个对象。所以这将通过
对象
实现,也就是为什么
案例对象

为什么
案例对象
重要,何时重要?我已经看过这篇文章了,但我不明白为什么
案例对象


嗯。。。
Scala
中的
对象
可以被
“粗略地”
解释为
匿名类的实例。现在
案例对象
对象
的区别在于
匿名类
案例类
还是仅仅是

更清楚地说,

object A

// is roughly equivalent to something like

class AnonymousClass12345
val A = new AnonymousClass12345()
其中对于
案例对象

case object A

// is roughly equivalent to something like,

case class AnonymousClass12345
val A = new AnonymousClass12345()
现在它应该很容易与
案例类
相关联。作为
匿名案例类
的一个实例,
案例对象
获得了任何其他
案例类
的所有好处


注:此答案旨在提供不准确但易于理解的解释。要想更准确地回答这个问题,不仅需要理解本文中讨论的类与类型之间的差异,而且还需要理解Scala反射。

我读了那篇文章,没有澄清我的疑问,所以我发布了。如果可以的话,请帮助我。@YuvalItzchakov在这个问题上的回答并没有解决OP的真正问题,这就是
case对象
@Sarvesh中
case
的重要性,但是当添加
case
对象a
a.type
的一个实例时,上述副本提供了完全不同的语义,不是“匿名类”。简单地说,case意味着不可变,对吗?不。。。因为大号的
case类
case对象
不变性
@mikołakwell没有任何关系。。。我想您没有注意到,
中的
大致相当于类似的东西。或者您准备好向像OP这样的Scala初学者解释
什么是.type了吗?
?编辑了答案,大致强调了
@SarveshKumarSingh:1。我注意到,在最初的修订版(现在编辑,谢谢)的一开始,“只不过是”。2.是的,当然,例如,
A
是一个自动生成的“类”
A.type
的实例是如何发音的?