Menu
Coddy logo textTech

'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.

challenge icon

Görev

Kolay

Enum'ları ve switch ifadelerini kullanarak bir oyun karakterinin durumunu yöneten bir program oluştur. Görevin:

  1. Aşağıdaki değerlere sahip CharacterState adlı bir enum tanımla: idle, walking, running, jumping ve attacking
  2. currentState türünde CharacterState adlı bir değişken oluştur ve ona CharacterState.idle değerini ata
  3. Bir getStateMessage parametresi alan ve bir switch ifadesi kullanarak duruma göre bir dize mesajı döndüren CharacterState adlı bir fonksiyon oluştur:
    • CharacterState.idle için: "Character is standing still" döndür
    • CharacterState.walking için: "Character is moving slowly" döndür
    • CharacterState.running için: "Character is moving quickly" döndür
    • CharacterState.jumping için: "Character is in the air" döndür
    • CharacterState.attacking için: "Character is fighting" döndür
  4. Fonksiyonu kullanarak başlangıç durumu mesajını tam olarak şu biçimde yazdır: Initial state: Character is standing still
  5. currentState değerini CharacterState.walking olarak değiştir
  6. Güncellenmiş durum mesajını tam olarak şu biçimde yazdır: Updated state: Character is moving slowly
  7. currentState değerini CharacterState.attacking olarak değiştir
  8. 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
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online Dart derleyicisi