gpt4 book ai didi

oop - Scala OOP基本问题-通过引用传递?

转载 作者:行者123 更新时间:2023-12-03 13:21:46 24 4
gpt4 key购买 nike

我对这个问题有多愚蠢并有严重的思想空白感到困惑,但我想无论如何我还是会问。

我有一个对象Foo,其中包含多个字段。我想要一种方法,可以根据将哪个字段作为参数传递来更改其任何字段。像这样:

class Foo {
var x = 0
var y = 0
}

class Bar {
def changeFooField(field : Int) = {
field = 1
}
}


我可以不这样使用它吗:

changeFooField(foo.x)


如果没有,我该怎么做?

最佳答案

你不能。您需要将字段值包含在一个对象中:

class Field[T]( var value: T )

class Foo {
val x = new Field(0)
val y = new Field(0)
}

class Bar {
def changeFooField( field: Field[Int] ) {
field.value = 1
}
}

val f = new Foo
(new Bar).changeFooField( f.x )
println( f.x.value + " / " + f.y.value ) // prints "1 / 0"

关于oop - Scala OOP基本问题-通过引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896118/

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