我想通过引用传递一个原语 (int, bool, ...)。我在这里找到了关于它的讨论(“通过引用传递值类型”段落):Dart 中的值类型,但我仍然想知道是否有办法在 Dart 中做到这一点(除了使用对象包装器)?有什么发展吗?
Dart 语言不支持这一点,我怀疑它永远不会支持,但未来会告诉我们答案。
基元将按值传递,正如这里已经提到的,“按引用传递基元”的唯一方法是将它们包装起来,如下所示:
class PrimitiveWrapper {
var value;
PrimitiveWrapper(this.value);
}
void alter(PrimitiveWrapper data) {
data.value++;
}
main() {
var data = new PrimitiveWrapper(5);
print(data.value); // 5
alter(data);
print(data.value); // 6
}
如果您不想这样做,那么您需要找到另一种方法来解决您的问题。
我看到人们需要通过引用传递的一种情况是他们想要将某种值传递给类中的函数:
class Foo {
void doFoo() {
var i = 0;
...
doBar(i); // We want to alter i in doBar().
...
i++;
}
void doBar(i) {
i++;
}
}
在这种情况下你可以做i
而是班级成员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)