【发布时间】:2021-04-15 00:25:50
【问题描述】:
在 Dart 中,看看下面的代码,它是对列表“按引用传递”,对整数“按值传递”吗?如果是这种情况,将通过引用/值传递什么类型的数据?如果不是这样,那么导致这种输出的问题是什么?
void main() {
var foo = ['a','b'];
var bar = foo;
bar.add('c');
print(aoo); // [a, b, c]
print(bar); // [a, b, c]
var a = 3;
int b = a;
b += 2;
print(a); // 3
print(b); // 5
}
【问题讨论】:
-
你实际上并没有在这里传递任何东西。
-
当您将一个变量的值复制到另一个变量时,您复制的是该变量的值,仅此而已。当你复制一个 int,一个原语时,你复制了 int 的值,但是当你复制一个列表时,你将 一个引用复制到列表中。所以现在你有两个引用,但它们引用的是同一个列表。
标签: dart