In Dart, as in many other object oriented programming languages, objects are always pass-by-value. But you can still pass pointers to objects and arrays by value.
class Wrapper {
int i = 0;
}
test() {
Wrapper wrapper = Wrapper();
wrapper.i = 10;
print(wrapper.i);
increase(wrapper);
print('First increase: value: ${wrapper.i}');
increase(wrapper);
print('Second increase: value: ${wrapper.i}');
}
increase(Wrapper wrapper) {
wrapper.i++;
}Initial value: 10 First increase: value: 11 Second increase: value: 12
