Suche…


Ansonsten

Dart hat If Else:

if (year >= 2001) {
  print('21st century');
} else if (year >= 1901) {
  print('20th century');
} else {
  print('We Must Go Back!');  
}

Dart hat auch einen ternären if Operator:

var foo = true;
print(foo ? 'Foo' : 'Bar'); // Displays "Foo".

While-Schleife

While-Schleifen und do-While-Schleifen sind in Dart zulässig:

while(peopleAreClapping()) {
  playSongs();
}

und:

do {
  processRequest();
} while(stillRunning());

Loops können mit einer Pause beendet werden:

while (true) {
  if (shutDownRequested()) break;
  processIncomingRequests();
}

Sie können Iterationen in einer Schleife mit continue überspringen:

for (var i = 0; i < bigNumber; i++) {
  if (i.isEven){
    continue;
  }
  doSomething();
}

Für Schleife

Zwei Arten von for-Schleifen sind zulässig:

for (int month = 1; month <= 12; month++) {
  print(month);
}

und:

for (var object in flybyObjects) {
  print(object);
}

Die for-in Schleife ist praktisch, wenn Sie einfach eine Iterable Auflistung Iterable . Es gibt auch eine forEach Methode, die Sie für Iterable Objekte Iterable können, die sich wie for-in verhalten:

flybyObjects.forEach((object) => print(object));

oder genauer:

flybyObjects.forEach(print);

Schaltergehäuse

Dart hat einen Schalter, der anstelle von langen if-else-Anweisungen verwendet werden kann:

var command = 'OPEN';

switch (command) {
  case 'CLOSED':
    executeClosed();
    break;
  case 'OPEN':
    executeOpen();
    break;
  case 'APPROVED':
    executeApproved();
    break;
  case 'UNSURE':
    // missing break statement means this case will fall through
    // to the next statement, in this case the default case
  default:
    executeUnknown();
}

Sie können nur Ganzzahl-, Zeichenfolgen- oder Kompilierungskonstanten vergleichen. Die verglichenen Objekte müssen Instanzen derselben Klasse sein (und nicht eines ihrer Subtypen), und die Klasse darf nicht == überschreiben.

Ein überraschender Aspekt des Wechsels in Dart ist, dass nicht leere Klauseln mit break enden oder seltener fortfahren, werfen oder zurückkehren müssen. Das heißt, nicht leere Fallklauseln können nicht durchfallen. Sie müssen eine nicht leere Case-Klausel explizit beenden, normalerweise mit einem break. Sie erhalten eine statische Warnung, wenn Sie break nicht fortfahren, fortfahren, werfen oder zurückkehren. Der Code wird zur Laufzeit an dieser Stelle angezeigt.

var command = 'OPEN';
switch (command) {
  case 'OPEN':
    executeOpen();
    // ERROR: Missing break causes an exception to be thrown!!

  case 'CLOSED': // Empty case falls through
  case 'LOCKED':
    executeClosed();
    break;
}

Wenn Sie in einem nicht leeren case einen Durchbruch erzielen möchten, können Sie continue und ein Etikett verwenden:

      var command = 'OPEN';
      switch (command) {
        case 'OPEN':
          executeOpen();
          continue locked;
locked: case 'LOCKED':
          executeClosed();
          break;
      }


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow