Dart – Pass by pointer or reference

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