Scala如何访问List中Camp类的x、y值及Page元素?
Scala 提取List中Camp的属性及Page对象
首先需要确认你的Camp、Target、Page类是case class(Scala中常用case class作为数据载体,默认生成属性的getter方法,方便直接访问),先修正并补充合理的类定义(原代码存在语法问题,比如未命名参数、List的写法错误):
// 定义基础数据类 case class Page(a: Int, b: Int, c: Int, d: Int) case class Target(list: List[Float]) case class Camp(x: Int, campType: String, target: Target, pages: List[Page], y: Double) // 修正语法后的目标List val campList = List(Camp( x=2, campType="UG", target=Target(List(0.0f)), pages=List(Page(2,4,600,150)), y=8.0 ))
提取属性并在其他函数中使用
方式一:安全处理(推荐,避免空列表抛出异常)
使用headOption处理可能为空的List,避免运行时错误:
// 定义要调用的业务函数 def processCampData(x: Int, y: Double, page: Page): Unit = { // 这里编写你的业务逻辑,比如打印或进一步处理数据 println(s"提取到x: $x, y: $y, Page对象: $page") } // 从List中提取数据并传入业务函数 campList.headOption.foreach { camp => val xValue = camp.x // 获取x=2 val yValue = camp.y // 获取y=8.0 camp.pages.headOption.foreach { targetPage => processCampData(xValue, yValue, targetPage) } }
方式二:直接提取(仅在确定List非空时使用)
如果能保证campList和camp.pages一定包含至少一个元素,可以直接用head提取:
val camp = campList.head val x = camp.x val y = camp.y val page = camp.pages.head // 调用业务函数 processCampData(x, y, page)
内容的提问来源于stack exchange,提问作者Vakindu
相关产品推荐
相关产品推荐

