Kuidas rakendada harutamist, kasutades switch operaatorit Dart keeles?
sobes.tech AI
Vastus AI-lt
Hargnemise switch operaatoriga Dartis toimub järgmiselt:
void main() {
var color = 'red';
switch (color) {
case 'red':
print('Selected color is red.');
break; // Lõpetab `switch` ploki täitmise
case 'blue':
print('Selected color is blue.');
break;
case 'green':
print('Selected color is green.');
break;
default: // Täidetakse, kui ükski juhtum ei sobi
print('Unknown color.');
}
}
switch võrdleb muutuja väärtust (antud juhul color) case-i järel olevate konstanditega. Kui leitakse vaste, täidetakse selle case-i seotud kood. break on vajalik switch ploki väljumiseks pärast sobiva juhtumi täitmist. Kui seda jätta vahele, jätkub täitmine järgmise case-i juurde (nimetatakse "fallthrough"), mis tavaliselt ei ole soovitav. default kasutatakse juhtudel, kui ükski case ei sobi.
Oluline on teada, et Dartis saab switch-i kasutada ainult järgmiste tüüpide väljenditega:
int- String tüüpi väärtustega (
String) - Kompileerimise ajal määratletud konstandatega (
const) või lõplikke (final) primitiivsete tüüpide muutujatega enumtüüpi muutujatega
Samuti saab kasutada tüüpide vastavust 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: // Kasutades `when` tingimust
print('Value is a positive integer: $i');
break;
case List _: // Vastavus List tüübile ilma muutujaga sidumiseta
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 tutvustas uusi pattern matching võimalusi, mis laiendavad switch väljendeid:
var number = 1;
var text = switch (number) {
1 => 'one',
2 => 'two',
_ => 'other' // Asendab default-i
};
print(text); // Kuvab: one
Siin kasutatakse switch-i kui väljendit, mis tagastab väärtuse. _ sümbol toimib asendusena, mis vastab igale väärtusele.