【发布时间】:2018-09-10 03:34:08
【问题描述】:
我需要一个类引用另一个类。不创建它的副本,但实际引用已经存在的实例。
我也许可以用一个例子更好地解释它。我们有没有上课Image:
class Image(imgPath: String) {
val height : Int
val width : Int
val rgbMatrix: MutableList< MutableList< Triple<Int, Int, Int> > >
/* ... etc. ... */
}
现在说我想要一个类ImageManager,它只引用一个已经存在的Image:
class ImageManager(val img: Image) {
/* ... */
}
所以我可以有这种行为:
val image = Image("/res/images/image.png")
val imageManager = ImageManager(image)
// Setting the pixel at (125, 25) to black
imageManager.img.rgbMatrix[125, 25] = Triple(0, 0, 0)
// Should print the update value(0, 0, 0)
print( image.rgbMatrix[125, 25] )
我的问题是:
在 Kotlin 中,in assignment 何时分配引用,何时分配副本?
我如何确定什么时候发生的分配?
官方文档中有详细说明吗?如果有我找不到。
提前致谢!
【问题讨论】:
-
你试过了吗?
-
@OliverCharlesworth 我没有,因为我的问题不是关于这个特殊情况。尝试 this 示例当然是微不足道的,但是在我正在努力达到需要此行为的状态和条件并对其进行充分测试的大型项目中将非常困难,所以我我正在寻找一个普遍的答案:)
标签: class oop object reference kotlin