Enum dalam Pernyataan 'switch'
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 61 dari 65.
Salah satu penggunaan enum yang paling ampuh adalah menggunakannya bersama pernyataan switch. Saat kamu menggabungkan enum dengan pernyataan switch, kamu membuat kode yang lebih aman dan lebih mudah dipelihara.
Berikut cara menggunakan enum dalam pernyataan switch:
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;
}Keunggulan menggunakan enum dengan pernyataan switch adalah Dart dapat memverifikasi bahwa kamu sudah menangani semua nilai enum yang mungkin. Jika kamu lupa menyertakan case untuk salah satu nilai enum, Dart akan memberi peringatan sehingga membantu mencegah bug dalam kodemu.
Pendekatan ini jauh lebih aman daripada menggunakan string atau angka dalam pernyataan switch, karena salah ketik dapat menyebabkan perilaku yang tidak terduga. Dengan enum, kamu mendapatkan pemeriksaan saat kompilasi yang memastikan kodemu menangani setiap kemungkinan skenario.
Tantangan
MudahBuat program yang mengelola status karakter game menggunakan enum dan pernyataan switch. Tugasmu adalah:
- Definisikan enum bernama
CharacterStatedengan nilai-nilai berikut:idle,walking,running,jumping, danattacking - Buat variabel bernama
currentStatedengan tipeCharacterStatedan tetapkan nilaiCharacterState.idlepadanya - Buat fungsi bernama
getStateMessageyang menerima parameterCharacterStatedan mengembalikan pesan string berdasarkan status menggunakan pernyataan switch: - Untuk
CharacterState.idle: kembalikan"Character is standing still" - Untuk
CharacterState.walking: kembalikan"Character is moving slowly" - Untuk
CharacterState.running: kembalikan"Character is moving quickly" - Untuk
CharacterState.jumping: kembalikan"Character is in the air" - Untuk
CharacterState.attacking: kembalikan"Character is fighting" - Cetak pesan status awal menggunakan fungsi dengan format yang persis sama:
Initial state: Character is standing still - Ubah
currentStatemenjadiCharacterState.walking - Cetak pesan status yang diperbarui dengan format yang persis sama:
Updated state: Character is moving slowly - Ubah
currentStatemenjadiCharacterState.attacking - Cetak pesan status akhir dengan format yang persis sama:
Final state: Character is fighting
Programmu harus menunjukkan penggunaan enum dan pernyataan switch yang tepat, serta memperlihatkan bagaimana kombinasi ini menyediakan pengelolaan status yang aman terhadap tipe. Pernyataan switch harus menangani semua nilai enum dan mengembalikan pesan yang sesuai untuk setiap status karakter. Pastikan kamu mengikuti konvensi penamaan Dart dan menggunakan pesan string yang ditentukan persis seperti di atas.
Coba sendiri
import 'dart:io';
// TODO: Definisikan enum CharacterState di sini
// TODO: Buat fungsi getStateMessage di sini
void main() {
// TODO: Tulis kodemu di bawah ini
// Buat variabel currentState dan beri nilai CharacterState.idle
// Cetak pesan status awal
// Ubah currentState menjadi CharacterState.walking
// Cetak pesan status yang diperbarui
// Ubah currentState menjadi CharacterState.attacking
// Cetak pesan status akhir
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unik6Penanganan Error Dasar
Apa Itu Pengecualian?Blok 'try-catch'Menangkap Pengecualian dengan 'on'Blok 'finally'Melempar PengecualianRingkasan: Pembagian Aman9Enumerasi (Enum)
Apa itu Enum?Mendefinisikan Enum SederhanaMenggunakan Enum dalam VariabelEnum dalam Pernyataan 'switch'Rangkuman, Lampu Lalu LintasLatihan sendiri: Compiler Dart online