【发布时间】:2018-12-17 11:33:06
【问题描述】:
我有两个案例类
case class Color (name: String, shades: List[Shade] = List.empty)
case class Shade (shadeName: String)
我也有两个解析器:
object ColorParser {
def apply(
s: String): Either[List[SomethingElse], Color] = {
val values = s.split("\\|", -1).map(_.trim).toList
validateColor(values).leftMap(xs => xs.toList).toEither
}
}
object ShadesParser {
def apply(s: String)
: Either[List[SomethingElse], Shade] = {
val values = s.split('|').map(_.trim).toList
validateShade(values).leftMap(xs => xs.toList).toEither
}
}
我有Color 的来源和Shade 的来源。
sourceForShade
.via (framing("\n"))
.map (_.utf8string)
.map (_.trim)
.map {
s => ShadesParser(s)
}
.collect {
case Right(shade) => shade
}
sourceForColor
.via(framing("\n"))
.map(_.utf8String)
.map(_.trim)
.map(s => ColorParser(s))
.collect {
case Right(color) => color
}
.map {color =>
//Here I want access to Color object that has the property shades list property set based on sourceForShade.
//At the moment it only has the name field but the List[Shade] property is empty.
}
问题
在map 的 cmets 部分中,我如何才能访问也具有基于 sourceForShade 填充的 shades: List[Shade] 属性的颜色对象
【问题讨论】:
标签: scala akka akka-stream