gpt4 book ai didi

scala 将 Array[String] 转换为 case 类

转载 作者:行者123 更新时间:2023-12-02 06:50:32 27 4
gpt4 key购买 nike

新手问题,但我经常发现自己正在处理文件,解析每一行并将其转换为案例类,以便我可以以更像对象的方式进一步使用 if 。在 java 中,现在在 scala 中,我执行相同的过程。

case class ABC(v1: Int, v2: String)
val str = line.split("\t")
val v1 = str(0).toInt
val v2 = str(1)
ABC(v1, v2)

有没有比这更短的方法可以从数组创建案例类?这变得非常乏味,因为我总是有大量的字段需要处理。

最佳答案

在伴生对象中定义一个 parse 方法,该方法采用字符串并提取用于构造实例的值,

import util._

case class ABC(v1: Int, v2: String)

object ABC {
def parse(s: String): Try[ABC] = {
val Array(v1,v2,_*) = s.split("\t")
Try(ABC(v1.toInt, v2))
}
}

注意v1被转换为Int,我们也从分割字符串中提取前两项,但可以提取任意数量的项目,然后转换为所需的类型。

那么有效的使用包括例如

val v = ABC.parse("12\t ab")

关于scala 将 Array[String] 转换为 case 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29996580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com