gpt4 book ai didi

Scala:复制具有特征的案例类

转载 作者:行者123 更新时间:2023-12-02 23:29:45 25 4
gpt4 key购买 nike

我对 Scala 相当陌生,我有一个关于在保留来自特征的数据的同时复制案例类的最佳方法的问题。例如,假设我有以下内容:

trait Auditing {

var createTime: Timestamp = new Timestamp(System.currentTimeMillis)
}

case class User(val userName: String, val email: String) extends Auditing

val user = User("Joe", "joe@blah.com")

然后我想制作一份更改了一个参数的新副本:

val user2 = user.copy(email = "joe@newemail.com")

现在,在上面的示例中,属性 createTime 不会被复制,因为它没有在 User case 类的构造函数中定义。所以我的问题是:假设不能将 createTime 移动到构造函数中,那么获取包含特征值的 User 对象副本的最佳方法是什么?

我使用的是 Scala 2.9.1

提前致谢!乔

最佳答案

您可以使用该行为重写复制方法。

case class User(val userName: String, val email: String) extends Auditing
{
def copy(userName = this.userName, email = this.email) {
val copiedUser = User(userName, email)
copiedUser.createTime = createTime
copiedUser
}
}

关于Scala:复制具有特征的案例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187722/

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