Zoeken…


Als het anders is

Dart heeft If Else:

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

Dart heeft ook een ternaire if operator:

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

Herhalingslus

While-lussen en doen-terwijl-lussen zijn toegestaan in Dart:

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

en:

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

Lussen kunnen worden beëindigd met een pauze:

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

Je kunt iteraties in een lus overslaan met doorgaan:

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

For loop

Er zijn twee soorten for-lussen toegestaan:

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

en:

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

De for-in lus is handig wanneer u eenvoudig een Iterable verzameling Iterable . Er is ook een methode forEach die u kunt aanroepen door Iterable objecten die zich gedragen als for-in :

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

of, korter:

flybyObjects.forEach(print);

Schakelkast

Dart heeft een schakelkast die kan worden gebruikt in plaats van lange if-else-verklaringen:

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();
}

U kunt alleen constanten voor gehele getallen, tekenreeksen of compilatie vergelijken. De vergeleken objecten moeten instanties van dezelfde klasse zijn (en niet van een van de subtypen) en de klasse mag niet == overschrijven.

Een verrassend aspect van schakelen in Dart is dat niet-lege hoofdzinnen moeten eindigen met breken, of minder vaak, doorgaan, gooien of terugkeren. Dat wil zeggen dat niet-lege casusclausules niet kunnen doorbreken. U moet expliciet een niet-lege case-clausule beëindigen, meestal met een pauze. U krijgt een statische waarschuwing als u break, doorgaat, gooit of terugkeert en de code geeft tijdens runtime een foutmelding op die locatie.

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;
}

Als u doorval wilt in een niet-lege case , kunt u continue en een label gebruiken:

      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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow