【发布时间】:2020-09-26 17:02:20
【问题描述】:
我知道 dart 就像 Java 一样按值传递,但我不明白为什么在下面的示例中它的行为类似于按引用传递?
class A {
int y = 10;
}
class B {
List<A> list = [];
void add(A a) {
a.y = 20;
list.add(a);
}
void runtest() {
print(list[0].y);
}
}
void main() {
A a = A();
B b = B();
b.add(a);
print(a.y);
b.runtest();
}
结果是
20
20
为什么当对象 (a) 的变量 (y) 在 (b) 内部的方法 (add) 内部发生变化时,它也改变了对象 (a) 在 main() 内部的变量 (y)?
【问题讨论】:
-
您是否也在 Java 中尝试过同样的事情并观察到不同的事情?
标签: dart pass-by-reference pass-by-value