加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 当我调用一个返回持有所述变量的case类实例的方法时,变

发布时间:2020-12-16 19:10:33 所属栏目:安全 来源:网络整理
导读:在我最近与一家信誉良好的软件公司进行的一次采访中,我被绊倒,试图为一个看似微不足道的 Scala问题提供有效的解释.考虑以下: case class Person(var age: Int)def person = new Person(10)person.age = 3println(person) 这是println语句返回的内容: Perso
在我最近与一家信誉良好的软件公司进行的一次采访中,我被绊倒,试图为一个看似微不足道的 Scala问题提供有效的解释.考虑以下:

case class Person(var age: Int)
def person = new Person(10)
person.age = 3
println(person)

这是println语句返回的内容:

Person(10)

问题是为什么这个以及当我将3分配给person.age时会发生什么?

解决方法

好,

def person = new Person(10)

是一个功能.也就是说,每次调用person时,都会创建一个Person的新实例.因此,如果我们内联函数,您的代码将如下所示:

Person(10).age = 3
println(Person(10))

如果要更改首先创建的人员实例的年龄,则需要捕获该实例.

val p = person
p.age = 3
println(p)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读