Kā īstenot nozarojumu, izmantojot switch operatoru Dart valodā?
sobes.tech AI
Atbilde no AI
Dart valodā switch operatora izmantošana notiek šādi:
void main() {
var color = 'red';
switch (color) {
case 'red':
print('Selected color is red.');
break; // Pabeidz `switch` bloku
case 'blue':
print('Selected color is blue.');
break;
case 'green':
print('Selected color is green.');
break;
default: // Tiek izpildīts, ja neviens gadījums neatbilst
print('Unknown color.');
}
}
switch salīdzina mainīgā vērtību (šajā gadījumā color) ar case norādītajām konstantes. Ja ir sakritība, tiek izpildīts ar to saistītais kods. break ir nepieciešams, lai izietu no switch bloka. Ja to izlaidīs, izpilde turpināsies nākamajā case (tā sauc par "fallthrough"), kas parasti ir nevēlami. default tiek izmantots, ja neviens case neatbilst.
Svarīgi atcerēties, ka Dart switch var izmantot tikai ar šādiem izteiksmju tipiem:
int- Virknes (
String) - Kompilācijas laikā noteiktas konstantes (
const) vai galīgās (final) primitīvu tipu mainīgās enumtipi
Tāpat ir iespējams izmantot tipu atbilstību ar case (Type value):
void process(dynamic value) {
switch (value) {
case String s:
print('Value is a string: $s');
break;
case int i when i > 0: // Ar `when` izmanto aizsargājošo nosacījumu
print('Value is a positive integer: $i');
break;
case List _: // Atbilstība List tipam bez mainīgā saistīšanas
print('Value is a list');
break;
default:
print('Value is of another type');
}
}
void main() {
process('hello');
process(10);
process([1, 2, 3]);
process(3.14);
}
Dart 3.0 ir ieviests jauns pattern matching funkcionalitātes, kas paplašina switch izteicienus:
var number = 1;
var text = switch (number) {
1 => 'one',
2 => 'two',
_ => 'other' // Līdzvērtīgs `default`
};
print(text); // Izvadīs: one
Šeit switch tiek izmantots kā izteiciens, kas atgriež vērtību. _ simbols darbojas kā aizstājējs, kas atbilst jebkurai vērtībai.