我想知道是否有办法直接从for comprehension实例化一个case类(在这种情况下我使用scalaz验证函数),而不必手动输入for comprehension中的参数
如果你有这样的案例类
case class Rawr(id:Option[Long],int:Int)
然后假设你做这样的事情
val test = for {
none <- None.successNel
anotherVariable <- 3.successNel
} yield Rawr.apply _ //This doesn't work, just here to make it compile.
// I want to instantiate a Rawr automatically with the variables
// in the for comprehension instead of having to manually put in
// none and anotherVariable
所以我最终可以像这样使用它
test match {
case Success(p) => {
//Should get a case class instance here i.e. p = Rawr(None,3)
}
}
问题是,我没有得到p的案例类实例(显然p是不正确的,因为我刚刚使用了apply。)
我之所以这样问,是因为我有提供20多个变量的理解,并且必须将每个变量都输入到case类实例化中,这会产生大量的样板