我有一个案例类,它的构造函数有几个参数,我定义了一个随附的类对象,该对象定义了一个替代构造函数,该构造函数采用一组不同的参数,如下所示:
case class MyClass (c: Char, mc: List[MyClass])
object MyClass {
def apply(c: Char, mc: MyClass): MyClass = {
MyClass(c, List(mc))
}
}
我想在 a 中使用原始案例类构造函数foldRight
:
object SomeStuff {
def problem (s: String) {
assert(!s.isEmpty)
val zero = MyClass('a', Nil)
val mc2 = "Pillsy Pillsy Pillsy" foldRight(zero) {
MyClass(_, List(_))
}
}
}
当我这样做时,我从编译器收到一条错误消息:“MyClass 不接受参数。” 如果我注释掉该部分val mc2 = ...
,这个问题就会消失,但MyClass
显然是在zero
. 我觉得我一定错过了一些非常基本的东西,但我不知道它是什么。我尝试了几种解决方法,比如定义一个辅助方法或一个函数值作为 的第二个参数foldRight
,但都没有帮助,这并不奇怪,因为我基本上是在随机摸索。