Dallar (Branches)
Bu sayfa, Dart kodunuzun akışını şu şekillerde kontrol edebileceğinizi gösterir:
if ifadeleri ve öğeleri
if-case ifadeleri ve öğeleri
switch ifadeleri ve ifadeleri
Ayrıca Dart'ta kontrol akışını şu şekillerde manipüle edebilirsiniz:
Döngüler, örneğin for ve while
İstisnalar, örneğin try, catch ve throw
If İfadeleri
Dart, isteğe bağlı else şartlarını içeren if ifadelerini destekler. Parantez içindeki koşul, bir boolean değerine değerlendirilebilen bir ifade olmalıdır:
if ifadesini bir ifade bağlamında nasıl kullanacağınızı öğrenmek için Koşullu İfadeler belgesine göz atabilirsiniz.
if-case İfadeleri
Dart if ifadeleri, desenlere sahip case ifadelerini destekler:
Eğer desen değeriyle eşleşirse, o zaman desenin tanımladığı değişkenlerle birlikte şube çalışır.
Önceki örnekte, liste deseni [int x, int y], cift değeri ile eşleşir, bu nedenle desenin tanımladığı x ve y değişkenleriyle birlikte return Nokta(x, y) şubesi çalışır.
Aksi takdirde, kontrol akışı else şubesine geçer:
if-case ifadesi, tek bir desene karşı eşleşme ve yapıyı parçalama imkanı sağlar. Birden fazla desene karşı bir değeri test etmek için switch kullanabilirsiniz.
Versiyon Notu: if ifadelerinde case ifadeleri, en az 3.0 dil sürümünü gerektirir.
Switch
Switch ifadesi, bir değer ifadesini bir dizi durumla karşılaştırır. Her durum ifadesi, değerin eşleşmesi için bir desen içerir. Bir durumun deseni eşleştiğinde, durum gövdesi çalışır. Dolu durum ifadeleri, tamamlandıktan sonra anahtarı sona erdirir ve break ifadesi gerektirmez. Boş durum ifadeleri eğer kullanılmak istenirse, gövde içinde bir break ifadesi kullanılmalıdır.
Belirli bir durumun eşleşmediği durumda kodun çalışmasını sağlamak için default veya _ kullanabilirsiniz:
Boş durumlar, bir sonraki duruma geçer, böylece durumlar bir gövdeyi paylaşabilir. Boş bir durumun geçmemesi için gövde içinde bir break ifadesi kullanılabilir. Non-sequential geçişler için continue ifadesi ve bir etiket kullanılabilir:
Durumların bir gövdeyi veya bir koruyucu kullanmasına izin vermek için mantıksal veya desenlerini kullanabilirsiniz. Desenler ve durum ifadeleri hakkında daha fazla bilgi için Switch İfadeleri ve İfadeleri belgesine göz atabilirsiniz.
Versiyon Notu: Switch ifadeleri, en az 3.0 dil sürümünü gerektirir.
Switch İfadeleri
Switch ifadesi, eşleşen durumun ifade gövdesine dayalı olarak bir değer üretir. Bir switch ifadesini, Dart'ın ifadeleri izin verilen her yerde kullanabilirsiniz, ancak bir ifade ifadesinin başlangıcında kullanmak istiyorsanız, bir switch ifadesi kullanmalısınız.
Örneğin:
Bir switch ifadesini, aşağıdaki gibi bir switch ifadesine yeniden yazabilirsiniz:
Şu şekilde bir ifadeye dönüştürebilirsiniz:
Switch ifadesinin sözdizimi, switch ifadesi sözdiziminden farklıdır:
Durumlar case anahtar kelimesi ile başlamaz.
Bir durum gövdesi bir dizi ifade yerine tek bir ifade olmalıdır.
Her durumun bir gövdesi olmalıdır; boş durumlar için dolaylı geçiş yoktur.
Durum desenleri, : yerine => ile gövdelerinden ayrılır.
Durumlar , ile ayrılır (isteğe bağlı bir sondan virgül izin verilir).
Varsayılan durumlar sadece _, default ve _ ikisi yerine yalnızca kullanılabilir.
Versiyon Notu: Switch ifadeleri, en az 3.0 dil sürümünü gerektirir.
Tamamlanmışlık Kontrolü (Exhaustiveness checking)
Tamamlanmışlık kontrolü, bir değerin bir switch'e girebilecek ancak hiçbir durumun eşleşmemesi durumunda bir derleme hatası bildirmesi özelliğidir.
Varsayılan bir durum (default veya _) bir switch üzerinden geçebilecek tüm değerleri kapsar. Bu, bir switch üzerinde tamamlanmışlık kontrolünü sağlar.
Enum'lar ve mühürlü tipler, özellikle switch'ler için kullanışlıdır çünkü varsayılan durum olmadan bile, mümkün olan değerleri bilir ve tamamen sayılabilir. Bir sınıfın alt türleri üzerinde switch yaparken tamamlanmışlık kontrolünü etkinleştirmek için bir sınıfın üzerine mühür ekleyin:
Eğer biri Sekil sınıfına yeni bir alt sınıf eklerse, bu switch ifadesi eksik olurdu ve tamamlanmamışlık kontrolü eksik alt türü size bildirir. Bu, Dart'ı biraz fonksiyonel algebratik veri tipi tarzında kullanmanıza olanak tanır.
Muhafız Kümeleri (Guard clause)
Bir durum ifadesinden sonra isteğe bağlı bir muhafız kümesi eklemek için when anahtar kelimesini kullanın. Bir muhafız kümesi, ifade eşleştiğinde takip eden bir şartı değerlendirir. Bir muhafız şartı false olarak değerlendirildiğinde, yürütme tüm durumdan çıkarak bir sonraki duruma geçer:
Muhafızlar, eşleşen durumdan sonraki herhangi bir kodun çalışmasını ek bir kısıtlama eklemek için kullanılır. Muhafız kümesi false olarak değerlendirildiğinde, yürütme tüm durumdan çıkarak bir sonraki duruma geçer.
Dart dilinde kontrol akışını yönetmek için if, switch ifadeleri ve döngüler kullanılır. Bu yapılar, kodunuzu esnek ve okunabilir kılmak için kullanılabilir. İster basit şartlar, ister karmaşık desenlerle eşleştirmeler yapmak isteseniz, Dart'ın kontrol akışı yapıları size ihtiyacınız olan araçları sunar.
Last updated