问题标签 [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.

0 投票
4 回答
12585 浏览

scala - Scala 不会与 java.lang.String 和 Case Class 进行模式匹配

各位 Scala 程序员你好

我已经使用 Scala 工作了一个月,但是我在一些基本的东西上遇到了问题,我希望你能帮我解决这个问题。

当我这样做时,我得到错误:

如果我然后将模式匹配中的第二行更改为以下内容:

然后我得到错误:

但是,如果我将字符串定义更改为以下内容,它在两种情况下都可以正常编译。

0 投票
2 回答
190 浏览

scala - 在 Scala 中命名案例类

我倾向于在案例类中使用这种冗余命名:

不能在MyTree中定义 Node 和 Leaf吗?这里有哪些最佳实践?

0 投票
4 回答
3307 浏览

scala - 为什么案例类伴随对象扩展 FunctionN?

当您创建一个案例类时,编译器会创建一个相应的伴随对象,其中包含一些案例类的好东西:一个apply与主构造函数匹配的工厂方法equals、、、hashCodecopy

有点奇怪,这个生成的对象扩展了 FunctionN。

只有在以下情况下才会出现这种情况:

  • 没有手动定义的伴随对象
  • 只有一个参数列表
  • 没有类型参数
  • 案例类不是抽象的。

好像是两年前添加的。最新的化身就在这里

有没有人使用它,或者知道为什么添加它?它使用静态转发器方法稍微增加了生成的字节码的大小,并显示在#toString()伴随对象的方法中:

更新

使用单一apply方法手动创建的对象不会自动被视为FunctionN

0 投票
1 回答
188 浏览

scala - 从类继承的案例类在用作构造函数参数时存在问题

我有这个案例类定义:

然后我在这个案例类中使用它:

然后尝试在这里使用:

为此,我得到以下令人费解的编译器错误:

我究竟做错了什么?

0 投票
1 回答
590 浏览

scala - scala 中的匹配案例类:~(a,b) match{case a~b=>...}

我有一个案例课

当我想做模式匹配时

我可以这样使用它,因为"a" ~ 25~("a", 25)是等价的。但如果我想new ~("a", new ~("b", 25))通过{case "a" ~ "b" ~ 25 => }麻烦开始匹配。我知道这些陈述并不等同。那么,如何 new ~("a", new ~("b", 25))呈现呢?依据什么规则?

0 投票
1 回答
357 浏览

scala - 将标签附加到 Scala 中的不可变案例类

我正在尝试使用包括标签和 goto 在内的命令为小语言创建解析器:

GOTO等是扩展抽象类的IFCMD案例类Core

为了与功能/类似scala/不可变对象的方式保持一致,我认为这样定义Core错误的:

但可以让我用以下内容替换部分<APPENDLABELTO_CORE>

谁能指出“scalaish”的方式来做到这一点?

(我试过c copy (label=Some(l))了,但抽象基类没有自动复制构造函数的魔力)

0 投票
1 回答
382 浏览

scala - 隐式转换以实例化密封类

我有这个遗产

但是,我想这样做:

我该怎么做?

0 投票
4 回答
1713 浏览

scala - 在Scala中将所有类定义为案例只是为了让它们的所有参数自动成为属性是否正确?

我开始使用 Scala。如果我希望将其参数公开为属性,我是否应该将一个类定义为案例类?它不会引入任何副作用吗?

0 投票
1 回答
5850 浏览

scala - 案例类别和特征

我想创建一个特殊的计算器。我认为这case class对运营来说是个好主意:

现在我可以使用 match-case 来解析输入。也许,我也应该使用traits(即:trait Distributivitytrait Commutativity),这可能吗?这是一个好主意吗?

0 投票
1 回答
3142 浏览

scala - 如何测试案例类构造函数的参数?

我想测试我的案例类构造函数的参数,如果它们未通过某些测试,则抛出异常。当我尝试编写自己的应用方法时编译器抱怨(多个“应用”方法。

我想我可以让它成为一个非案例类,并自己做应用/取消应用构造函数字段的东西,但我不希望这样做。

谢谢