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)
我是 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)