gpt4 book ai didi

scala - 当我调用一个方法返回一个包含所述变量的案例类实例时,变量赋值会怎样?

转载 作者:行者123 更新时间:2023-12-04 13:18:53 25 4
gpt4 key购买 nike

在最近一次与一家知名软件公司的采访中,我被绊倒了,试图为看似平凡的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)

关于scala - 当我调用一个方法返回一个包含所述变量的案例类实例时,变量赋值会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36540851/

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