问题标签 [case-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 这个案例类匹配模式是如何工作的?
我刚刚在 Scalaactors
包中看到了这个案例类:
在 JavaDoc 中,它以以下形式描述了用法:
为什么不是这样:
是bang算子!与以冒号结尾的方法类似的特殊情况:
scala - 在 Scala 中映射的案例类
有没有一种好方法可以转换 Scalacase class
实例,例如
进入某种映射,例如
这适用于任何案例类,而不仅仅是预定义的类。我发现您可以通过编写一个询问底层 Product 类的方法来提取案例类名称,例如
所以我正在寻找一个类似的解决方案,但对于案例类字段。我想一个解决方案可能必须使用 Java 反射,但如果案例类的底层实现发生变化,我不想写一些可能会在未来版本的 Scala 中破坏的东西。
目前我正在使用 Scala 服务器并使用案例类定义协议及其所有消息和异常,因为它们是一个非常漂亮、简洁的构造。但是然后我需要将它们转换为 Java 映射,以通过消息传递层发送以供任何客户端实现使用。我当前的实现只是为每个案例类分别定义了一个翻译,但如果能找到一个通用的解决方案会很好。
scala - 用于向 Scala Actors 发送消息的符号或案例类?
在 Scala Actor 示例中,我看到了将无参数消息发送给 Actor(例如this)的位置,创建了case class
es(或case object
s),然后将其用作消息。符号也可以工作,看起来更整洁,并且在阅读了一本关于 Erlang 的书之后,看起来更自然。我假设符号平等适用于远程参与者。
对于带有参数的消息,案例类将是显而易见的选择,所以消息类型之间的一致性可能是一个问题?
有任何理由采用这两种方法吗?
scala - Scala中的案例对象与枚举
是否有关于何时使用案例类(或案例对象)与在 Scala 中扩展枚举的最佳实践指南?
它们似乎提供了一些相同的好处。
scala - Scala中匹配案例类的子类
为什么这无法编译(或工作?):
编译器错误是:
请注意,这将按预期编译和运行:
附录
仅供参考,编译并运行良好:
reflection - 对 Scala 案例类的反思
我正在尝试编写一个可以混合到案例类中的特征(在 Scala 2.8 中),允许在运行时检查其字段,以用于特定的调试目的。我想按照它们在源文件中声明的顺序取回它们,并且我想省略案例类中的任何其他字段。例如:
上面的实现显然是有缺陷的,因为它通过这些字段上的值的相等性来猜测字段在 Product 中的位置与其名称之间的关系,因此以下内容将不起作用:
有什么办法可以实现吗?
scala - 为什么不推荐使用没有参数列表的案例类?
为什么 Scala 不推荐使用没有参数列表的案例类?为什么编译器建议改为()
用作参数列表?
编辑 :
有人请回答我的第二个问题... :|
scala - Scala的案例类和类有什么区别?
case class
我在 Google 中搜索以找到 a和 a之间的区别class
。大家都提到,当你想对类做模式匹配时,用例类。否则使用类,并提到一些额外的好处,如等于和哈希码覆盖。但这些是人们应该使用案例类而不是类的唯一原因吗?
我想 Scala 的这个特性应该有一些非常重要的原因。解释是什么,或者是否有资源可以从中了解有关 Scala 案例类的更多信息?
scala - Scala案例类的重载构造函数?
在 Scala 2.8 中有没有办法重载案例类的构造函数?
如果是,请放一个片段来解释,如果不是,请解释为什么?
scala - 如何从 Java 中“获取”一个 Scala 案例对象?
我在 Scala 中创建了一个案例对象的层次结构,如下所示:
我也有一段我想访问的 Java 代码PressureSensor
,但以下代码不起作用:
那么,如何PressureSensor
从 Java 中引用 case 对象呢?我反编译了PressureSensor
和PressureSensor$
类的字节码,结果如下:
但这并没有产生任何深刻的见解。