鉴于下面的 Scala 列表,我想访问元素
x
和 y
以及整个 Page
类元素的值。我需要在另一个函数中再次使用这些值。
List(Camp(x=2,UG,Target(List(000f)),List(page=Page(2,4,600,150)),y=8.0))
如何访问这些值?
x=??
y=??
page=??
全部完成,
x
的值必须等于2
,y
必须等于8.0
并且page
的值必须等于Page(2,4,600,150)
提前致谢!
所以,你有一个带有签名的函数
def yourFunction(param1: Type1, param2: Type2): List[Camp]
根据提供的示例,我将假设以下类是以这种方式定义的
val UG = "UG"
case class Target(floats: List[Float])
case class Page(x: Int, y: Int, a: Int, b: Int)
case class Camp(x: Int, ug: String, target: Target, pages: List[Page], y: Double)
如果您只想获取遵循某些特定规则的列表元素的值,您可以使用
find
,它会返回 Option
。如果找到该元素,则为 Some
,否则为 None
。
val camps: List[Camp] = yourFunction(param1, param2) // your function returning
val maybeElementFound: Option[Camp] = camps
.find(camp => // we try to find a `camp` element that follow some criteria
camp.x == 2 // x == 2
&& camp.y == 8 // y == 8
&& camp
.pages // pages is a list, so we need to use some of the methods provided by that class
.contains(Page(2,4,600,150)) // contains returns true if the element passed exist, otherwise returns false
)
maybeElementFound match {
case Some(campFound) => // ... the logic when the element is found
case None => // ... the logic when the element is not found
}