dart
Controle stroom
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;
}