scala 对象组合 - 访问不同类型的嵌套对象字段(例如 Array 与 Option[Int])

scala object composition - accessing nested object fields of different types (e.g. Array vs Option[Int])

我是 Scala 的新手。要温柔。我有这些嵌套对象(我理解我正在使用的 OOP 概念是 'object composition',意思是对象中的对象)

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

有什么问题? 问候。

bf.a returns 是一个项目数组,而不是单个项目。您需要执行以下操作:

bf.a.map(_.na) // res0: Array[Option[Int]] = Array(Some(1))

这表示 a 中的每个项目,return 该项目的 na 值。这相当于写 bf.a.map(x => x.na)