11得票3回答
修改 case class 构造函数参数后再设置值

在Scala中,是否有一种方法可以在单参数case类构造函数/ apply()方法传递参数之前修改它,以使其成为val?例如。 case class AbsVal private(aVal: Double) object AbsVal { def apply(aVal: Doubl...

11得票3回答
如何从字段名称的字符串访问Case类字段值

我该如何从给定代表字段的字符串值中提取案例类的字段值。 例如:case class Person(name: String, age: Int) val a = Person("test",10) 现在有一个字符串变量name或age,我想从变量a中提取值。我该怎么做?我知道可以使用反射来做...

10得票3回答
案例类和特质的线性化

假设我想要编写一个如下的 case class Stepper:case class Stepper(step: Int) {def apply(x: Int) = x + step} 它带有一个漂亮的toString实现:scala> Stepper(42).toString res0...

10得票3回答
默认的 Case Class apply 方法

假设我们有以下的 case class: case class CasePerson(firstName: String) 我们还为其定义了一个伴生对象: object CasePerson { def apply() = new CasePerson( "XYZ" ) } 请注...

10得票2回答
为什么 case class 被命名为 'case'?

“Case”表示“特定情况的实例;某事发生的一个示例”。 那么我的问题是 - 为什么Scala 'case'类被命名为'case'? 这有什么意义? 为什么是“case”,而不是“data”类或其他什么东西? 在这种情况下,“case”是什么意思呢:)

10得票2回答
为什么在Scala中Unit不继承Product?

在Scala中,为什么Unit不像Tuple类和case class(包括“空”类,如case class Empty()和case对象)一样扩展Product特质呢? Unit(具体来说是()这个单位值)确实可以作为空的产品和元组。例如,在shapeless中就是这样使用的。

10得票4回答
Scala无法使用模式匹配与java.lang.String和Case Class进行匹配

大家好,Scala程序员们 我已经使用Scala工作了几个月了,但是对于一些基础的东西有问题,希望你们能帮助我解决。case class PersonClass(name: String, age: Int) object CaseTester { def main(args:Array[...

10得票2回答
自动哈希一致性案例类

我正在寻找一种方式,使类的行为与case类完全相同,但是自动hash consed。 对于整数列表,实现这一目标的一种方法是: import scala.collection.mutable.{Map=>MutableMap} sealed abstract class List ...

10得票3回答
为case类“免费”获取部分构造函数

考虑一个定义了两个属性的抽象类。 abstract class A { def a: Int def b: Int // real A has additional members } 这是各种情况类的基类,例如: case class Foo(a: Int, b: Int...

10得票3回答
如何为一个case class创建一个显式的伴生对象,使其与被替换的编译器提供的隐式伴生对象表现完全相同?

我有一个如下所示的 case class: case class StreetSecondary(designator: String, value: Option[String]) 我随后定义了一个显式伴生对象: object StreetSecondary { //empty ...