问题标签 [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.
list - Scala 案例类和列表
我对 Scala 完全陌生。现在我正在尝试将我在标准 ML 中编写的解析器移植到 Scala 并遇到以下代码问题:
在 SML 中,我不必声明 tokenize() 方法的返回类型,但似乎 Scala 需要它,并且它对我提供的类型不满意(它抱怨零,At 是无效类型,它们应该是代币类型)。请注意,我还想在解析阶段的稍后时间点匹配令牌列表。
我在网上和 stackoverflow 本身上进行了一些搜索,以查看之前是否曾提出过类似的问题(看起来如此微不足道),但不知何故我找不到任何东西。我很确定我有一些基本错误,请随时启发我:)
scala - Scala match 表达式中的替代顺序对性能有影响吗?
特别是关于模式匹配和案例类。考虑以下:
例如,给定任何示例调用simplify(UnOp("-", UnOp("-", UnOp("-", UnOp("-", Var("x"))))))
(结果为Var("x")
),匹配表达式中的替代顺序对性能有影响吗?
旁注,有点相关(我自己的观察):真正让我印象深刻的一件事simplify
是它是一个递归函数,尽管与我编写/处理的其他递归函数不同,基本情况排在最后是为了避免终止早期的。
scala - scala案例类等于(==)没有按预期工作
我一定在这里遗漏了一些愚蠢的东西。我有这个:
然后我希望这能打印出true:
为什么不呢??
scala - Scala 中的案例类、模式匹配和柯里化构造函数
他们似乎并没有很好地混合:
以下将不起作用:
问题是模式匹配和柯里化参数似乎不起作用。有解决办法吗?
scala - Scala:在模式匹配中混合特征和案例类
我想匹配一些案例类。如果我不认识它们,我想匹配类必须扩展的指定特征。这看起来像
我运行以下测试
这导致以下输出
为什么我不能在案例类和特征上或仅在类上进行模式匹配?
scala - 如果派生类具有相同的参数并且不应覆盖,我应该如何扩展案例类?
这会导致属性命名冲突,因为 Scala 尝试在 ReqValidationMessage 案例类中创建名为 xml 的第二个属性。但我希望两个构造函数(Message 和 ReqValidationMessage)具有相同的参数。我应该怎么办?
scala - 有效地序列化案例类
对于我正在开发的库,我需要提供一种高效、方便且类型安全的序列化 scala 类的方法。理想的情况是用户可以创建一个案例类,并且只要所有成员都是可序列化的,它也应该是无缝的。我在序列化和反序列化阶段都知道类型,因此不需要(也不能)将任何“模式”信息作为序列化格式的一部分(如 Java 对象序列化)。
我一直在玩一些想法,这个想法似乎非常接近。我在这里看到的主要问题是用户必须如何指定类的“应用”和“取消应用”功能。由于这些是真正的静态函数,我想知道是否有可能让编译器找到它。
这是一个自包含的示例:
然后我需要一个这样的函数:
这将允许用户非常容易地使用它。例如
但正如你所看到的,最后一行真的很糟糕。当然必须有可能改进这一点?(给定一个耶稣,我当然可以找到“不适用”的静态方法)
arrays - 使用 scala 将地图链接到文件,以运行基于文本的游戏
我正在上一门初级编程课程,我们正在制作基于文本的游戏,更像是阅读你自己的冒险然后是实际游戏,我不太明白如何从我的地图中获取信息,其中包含所有房间信息,放入将运行它的文件中。我将房间文件设置为...
依此类推,为房间分配一个号码和一个名称,然后它会得到一个描述,然后列出出口的数量,列出它们是什么,然后列出答案应该带你去哪个编号的房间。我不知道如何获取它,以便它读入两件事,一个将前三位信息作为房间信息,第二个读取出口数量并创建一个具有该数量出口的数组,然后读入出口和他们的号码。
我所拥有的是
我知道可能有一些简单的答案,但我真的很迷茫我应该做什么。我不知道如何读入我的文件,以便将正确的部分放到正确的位置,而且我已经足够初学者了,我一直在阅读的很多内容对我来说并不是很清楚,所以希望我的问题足够清楚,有人可以帮助我,并告诉我是否要这样做甚至是正确的,以及当我真正尝试将它们组合在一起时它是否会起作用,因为如果我了解我在做什么,它必须接受用户输入,查找从出口数组中输入的方向,查看与之关联的目的地,然后获取该目的地并在地图中查找具有该编号的位置,然后将您带到那里,然后 println(Map.description ) 并等待下一个输入?
scala - 案例类中的产品继承
我有一些扩展公共超类的案例类,我想使用productElement
方法从超类访问字段(我试图将基类声明为案例类,但我收到一个关于案例类继承危险的可怕警告但仍然不起作用)。
我可以想象一些这样的解决方案:
但它变得如此丑陋,我什至无法完成。
有人知道更好的解决方案吗?
scala - 在 Scala 中,是否有一种简单的方法可以将案例类转换为元组?
有没有一种简单的方法可以将案例类转换为元组?
当然,我可以很容易地编写样板代码来做到这一点,但我的意思是没有样板代码。
我真正追求的是一种轻松使案例类按字典顺序排列的方法。我可以通过导入 scala.math.Ordering.Implicits._ 来实现元组的目标,瞧,我的元组为它们定义了一个排序。但是 scala.math.Ordering 中的隐含通常不适用于案例类。