相关疑难解决方法(0)

更新嵌套结构的更清洁方法

说我有以下两个case classes:

case class Address(street: String, city: String, state: String, zipCode: Int)
case class Person(firstName: String, lastName: String, address: Address)
Run Code Online (Sandbox Code Playgroud)

和以下Person类的实例:

val raj = Person("Raj", "Shekhar", Address("M Gandhi Marg", 
                                           "Mumbai", 
                                           "Maharashtra", 
                                           411342))
Run Code Online (Sandbox Code Playgroud)

现在,如果我想更新zipCode,raj那么我将不得不做:

val updatedRaj = raj.copy(address = raj.address.copy(zipCode = raj.address.zipCode + 1))
Run Code Online (Sandbox Code Playgroud)

随着嵌套水平的提高,这将变得更加丑陋.是否有更清洁的方式(像Clojure的东西update-in)来更新这样的嵌套结构?

scala zipper case-class

122
推荐指数
7
解决办法
2万
查看次数

Scala的Case Classes的重载构造函数?

在Scala 2.8中是否有一种方法来重载案例类的构造函数?

如果是的话,请把一个片段解释一下,如果没有,请解释原因?

constructor scala overloading case-class scala-2.8

99
推荐指数
2
解决办法
6万
查看次数

标签 统计

case-class ×2

scala ×2

constructor ×1

overloading ×1

scala-2.8 ×1

zipper ×1