我是scala的新手。要温柔。我有这些嵌套对象(我了解我使用的OOP概念是“对象组合”,即对象内部的对象)
case class T(na: Option[Int], du: Option[Int], sz: Option[Int], a: Option[Int])
case class BF(s: Int, a: Array[T], tr: Array[T], cs: Array[T])
val t = T(Some(1), Some(1),Some(1),Some(1) )
val bf = BF(5, Array(t), Array(t) ,Array(t))
这有效:
bf.s
bf.a
我想做:
bf.a.na
出什么问题了? 问候。
答案 0 :(得分:1)
bf.a
返回项目数组,而不是单个项目。您需要执行以下操作:
bf.a.map(_.na) // res0: Array[Option[Int]] = Array(Some(1))
这是说,对于a
中的每个项目,返回该项目的na
值。相当于写bf.a.map(x => x.na)