假设我有一个带有更新方法的 Scala 类:
case class User (id: Integer, name: String, surname: String, address: String) {
def update (name: String, surname: String, address: String): Unit = {
copy (name, surname, address)
}
}
Scala 是否可以使用一个或两个参数调用更新函数并委托(delegate)调用复制函数?像这样:
val user: User = User (1, "name", "surname", "address")
user.update(name: "name") // Here it delegate to call copy (name)
或者我是否必须为每种情况复制并粘贴每个更新函数?
最佳答案
考虑
case class User (id: Integer, name: String, surname: String, address: String)
其中成员类型跟在成员名称后面。
然后像这样直接调用copy
,
val userA = User(1,"a","b","c")
userA: User(1,a,b,c)
val userA2 = a.copy(2)
userA2: User(2,a,b,c)
val userBB = a.copy(name = "bb")
userBB: User(1,bb,b,c)
关于scala - 如何调用带有短参数列表的 Scala 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25600681/