codestory

Punkt-Punkt-Operator in der Dart-Sprache

  1. Der Operator dot dot ( .. )

1. Der Operator dot dot ( .. )

In der Programmiersprache Dart wird der Operator dot dot ( .. ) auch als "cascade notation" interpretiert. Es ermöglicht Ihnen, dasselbe Ziel nicht zu wiederholen, wenn Sie mehrere Methoden für dasselbe Objekt aufrufen möchten.
Zum Beispiel:
dotdot_ex1.dart
void main() {
  var list1 = [];
  list1..add('One')..add('Two')..add('Three');
  print(list1); // [One, Two, Three]

  // Same as:
  var list2 = [];
  list2.add('One');
  list2.add('Two');
  list2.add('Three');
  print(list2); // [One, Two, Three]
}
Beispiel: Wenn Sie mehrere Methoden desselben Objekts aufrufen und den Operator dot dot verwenden, wird Ihr Code kürzer.
dotdot_ex2.dart
void main() {
  var list1 = [];
  list1..add('One')..add('Two')..addAll(['Three', 'Four', 'Five']);
  print(list1); // [One, Two, Three, Four, Five]  

  // Same as:
  var list2 = [];
  list2.add('One');
  list2.add('Two');
  list2.addAll(['Three', 'Four', 'Five']);
  print(list2); // [One, Two, Three, Four, Five]

  // Same as:
  var list3 = []..add('One')..add('Two')..addAll(['Three', 'Four', 'Five']);
  print(list3); // [One, Two, Three, Four, Five]  
}
In languages that do not support the der Operator dot dot, to call a sequence of methods, the methods must return an object. Such as:
without_dotdot_ex1.dart
class Calculator {
  double _accumulator = 0;

  Calculator(double startValue) {
    _accumulator = startValue;
  }
  Calculator add(double val) {
    _accumulator += val;
    return this; // Return this object.
  }
  Calculator subtract(double val) {
    _accumulator -= val;
    return this; // Return this object.
  }
  double result() {
    return _accumulator;
  }
}
void main() {
    var calc = Calculator(100);
    var result = calc.add(100).subtract(50).subtract(25).result();
    print(result); // 125
}
Der Operator dot dot hilft Ihnen, eine Reihe von Methoden aufzurufen, die nicht unbedingt ein Objekt zurückgeben. Wir schreiben das obige Beispiel um.
with_dotdot_ex1.dart
class Calculator {
  double _accumulator = 0;

  Calculator(double startValue) {
    _accumulator = startValue;
  }
  void add(double val) {
    _accumulator += val;
  }
  void subtract(double val) {
    _accumulator -= val;
  }
  double result() {
    return _accumulator;
  }
}
void main() {
    var calc = Calculator(100);
    calc..add(100)..subtract(50)..subtract(25);
    var result = calc.result();
    print(result); // 125
}