Dart dilinde switch operatörü kullanarak nasıl dallanma yapılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dart'ta switch operatörü ile dallanma şu şekilde yapılır:
void main() {
var color = 'red';
switch (color) {
case 'red':
print('Seçilen renk kırmızı.');
break; // switch bloğundan çıkmayı sağlar
case 'blue':
print('Seçilen renk mavi.');
break;
case 'green':
print('Seçilen renk yeşil.');
break;
default: // Hiçbir case eşleşmezse çalışır
print('Bilinmeyen renk.');
}
}
switch, değişkenin (bu durumda color) değerini case'den sonra belirtilen sabitlerle karşılaştırır. Eşleşme durumunda, bu case ile ilişkili kod çalıştırılır. break anahtar kelimesi, uygun case çalıştıktan sonra switch bloğundan çıkmak için gereklidir. Bunu atlamışsanız, yürütme bir sonraki case'e geçer (buna "fallthrough" denir), bu genellikle istenmez. default, hiçbir case eşleşmediğinde kullanılır.
Dart'ta, switch içinde sadece aşağıdaki ifade türleri kullanılabilir:
int- String (
String) - Derleme zamanında sabitler (
const) veya final (final) değişkenler - Enum (
enum)
Ayrıca, case (Type value) kullanılarak tür eşleştirmesi yapılabilir:
void process(dynamic value) {
switch (value) {
case String s:
print('Değer bir string: $s');
break;
case int i when i > 0: // `when` ile guard kullanımı
print('Pozitif bir tamsayı: $i');
break;
case List _: // List türü ile eşleştirme, değişkene bağlamadan
print('Değer bir liste');
break;
default:
print('Başka bir türde değer');
}
}
void main() {
process('merhaba');
process(10);
process([1, 2, 3]);
process(3.14);
}
Dart 3.0 ile, pattern matching yeni özellikler kazandı ve switch ifadeleri genişletildi:
var number = 1;
var text = switch (number) {
1 => 'bir',
2 => 'iki',
_ => 'diğer' // default ile eşdeğer
};
print(text); // Çıktı: bir
Burada, switch bir değer döndüren ifade olarak kullanılır. _ operatörü, herhangi bir değere karşılık gelen joker karakterdir.