更新数组中的 case class 数据
Update case class data in an array
我正在尝试从数组更新大小写 class。
尝试更新数组中的 case class 数据,但我也必须删除旧记录
我试过如下
case class Data(str1: String, str2:String) { def updateMsg(msg : String) = this.copy(str2 = msg)}
val list = Array(Data("1", "2"), Data("2", "b"), Data("3", "c"))
list :+ list.filter(_.str1.equalsIgnoreCase("1"))(0).updateMsg("a")
我从上面的列表中得到的结果如下
Array[Data] = Array(Data(1,2), Data(2,b), Data(3,c), Data(1,a))
是否有更好的方法来更新现有案例 class 行?
一个简单的 map
应该可以做到:
list.map { data =>
if (data.str1.equalsIgnoreCase("1")) {
data.updateMsg("a")
} else {
data
}
}
或
list.map {
case data if data.str1.equalsIgnoreCase("1") =>
data.updateMsg("a")
case data =>
data
}
我正在尝试从数组更新大小写 class。
尝试更新数组中的 case class 数据,但我也必须删除旧记录
我试过如下
case class Data(str1: String, str2:String) { def updateMsg(msg : String) = this.copy(str2 = msg)}
val list = Array(Data("1", "2"), Data("2", "b"), Data("3", "c"))
list :+ list.filter(_.str1.equalsIgnoreCase("1"))(0).updateMsg("a")
我从上面的列表中得到的结果如下
Array[Data] = Array(Data(1,2), Data(2,b), Data(3,c), Data(1,a))
是否有更好的方法来更新现有案例 class 行?
一个简单的 map
应该可以做到:
list.map { data =>
if (data.str1.equalsIgnoreCase("1")) {
data.updateMsg("a")
} else {
data
}
}
或
list.map {
case data if data.str1.equalsIgnoreCase("1") =>
data.updateMsg("a")
case data =>
data
}