'switch' İfadelerinde Enumlar
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 61 / 65.
Enum’ların en güçlü uygulamalarından biri, onları switch ifadeleriyle kullanmaktır. Enum’ları switch ifadeleriyle birleştirdiğinizde hem daha güvenli hem de bakımı daha kolay kod oluşturursunuz.
Bir enum'u switch ifadesinde şu şekilde kullanabilirsiniz:
enum Status {
pending,
running,
completed
}
Status currentStatus = Status.pending;
switch (currentStatus) {
case Status.pending:
print('Task is waiting to start');
break;
case Status.running:
print('Task is currently in progress');
break;
case Status.completed:
print('Task has been finished');
break;
}switch ifadeleriyle enum kullanmanın güzelliği, Dart'ın olası tüm enum değerlerini ele aldığınızı doğrulayabilmesidir. Enum değerlerinden biri için bir case eklemeyi unutursanız Dart sizi uyararak kodunuzdaki hataları önlemeye yardımcı olur.
Bu yaklaşım, yazım hatalarının beklenmedik davranışlara neden olabileceği switch ifadelerinde dizeler veya sayılar kullanmaktan çok daha güvenlidir. Enum'larla, kodunuzun olası her senaryoyu ele almasını sağlayan derleme zamanında denetim elde edersiniz.
Görev
KolayEnum'ları ve switch ifadelerini kullanarak bir oyun karakterinin durumunu yöneten bir program oluştur. Görevin:
- Aşağıdaki değerlere sahip
CharacterStateadlı bir enum tanımla:idle,walking,running,jumpingveattacking currentStatetüründeCharacterStateadlı bir değişken oluştur ve onaCharacterState.idledeğerini ata- Bir
getStateMessageparametresi alan ve bir switch ifadesi kullanarak duruma göre bir dize mesajı döndürenCharacterStateadlı bir fonksiyon oluştur: CharacterState.idleiçin:"Character is standing still"döndürCharacterState.walkingiçin:"Character is moving slowly"döndürCharacterState.runningiçin:"Character is moving quickly"döndürCharacterState.jumpingiçin:"Character is in the air"döndürCharacterState.attackingiçin:"Character is fighting"döndür- Fonksiyonu kullanarak başlangıç durumu mesajını tam olarak şu biçimde yazdır:
Initial state: Character is standing still currentStatedeğeriniCharacterState.walkingolarak değiştir- Güncellenmiş durum mesajını tam olarak şu biçimde yazdır:
Updated state: Character is moving slowly currentStatedeğeriniCharacterState.attackingolarak değiştir- Son durum mesajını tam olarak şu biçimde yazdır:
Final state: Character is fighting
Programın, switch ifadeleriyle enum'ların doğru kullanımını göstermeli ve bu birleşimin tür güvenli durum yönetimi sağladığını ortaya koymalıdır. switch ifadesi tüm enum değerlerini ele almalı ve her karakter durumu için uygun mesajı döndürmelidir. Dart adlandırma kurallarına uyduğundan ve yukarıda belirtilen dize mesajlarını tam olarak kullandığından emin ol.
Kendin dene
import 'dart:io';
// YAPILACAK: CharacterState enum'unuzu burada tanımlayın
// YAPILACAK: getStateMessage fonksiyonunuzu burada oluşturun
void main() {
// YAPILACAK: Kodunuzu aşağıya yazın
// currentState değişkenini oluşturun ve CharacterState.idle değerini atayın
// Başlangıç durumu mesajını yazdırın
// currentState'i CharacterState.walking olarak değiştirin
// Güncellenmiş durum mesajını yazdırın
// currentState'i CharacterState.attacking olarak değiştirin
// Son durum mesajını yazdırın
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli Listesi6Temel Hata Yönetimi
İstisnalar Nedir?'try-catch' Bloğu'on' ile İstisnaları Yakalamak'finally' Bloğuİstisna FırlatmakÖzet - Güvenli Bölme9Numaralandırmalar (Enums)
Enum Nedir?Basit bir Enum TanımlamaDeğişkenlerde Enum Kullanımı'switch' İfadelerinde EnumlarÖzet - Trafik LambasıKendi başına pratik yap: Online Dart derleyicisi