Nilai Enum
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 39 dari 78.
Setiap opsi enum adalah int, jadi kamu bisa membandingkan opsi dan menghitung dengannya:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
print(Day.FRIDAY) # 4
print(Day.SATURDAY > Day.FRIDAY) # true
print(Day.FRIDAY + 1) # 5enum itu sendiri berfungsi seperti dictionary yang memetakan nama ke nilai. keys() mengembalikan nama secara berurutan, values() mengembalikan nilai, dan size() mengembalikan jumlah opsi:
print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7Untuk mencetak nama suatu nilai, gunakan nilai tersebut sebagai indeks pada keys(). Ini berfungsi jika pilihan menggunakan nilai default 0, 1, 2... Untuk enum dengan nilai yang dipilih, gunakan find_key(), yang mengembalikan nama suatu nilai:
var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAYDengan enum Coin { COPPER = 1, SILVER = 10 } di tingkat teratas, Coin.keys()[10] berada di luar rentang, sedangkan find_key() berfungsi:
print(Coin.find_key(10)) # SILVERUntuk melakukan sebaliknya, dari nama yang disimpan sebagai teks ke nilainya, gunakan tanda kurung siku. Periksa namanya dengan has() terlebih dahulu: nama yang tidak ada dalam enum adalah error.
var text := "FRIDAY"
if Day.has(text):
print(Day[text]) # 4for day_name in Day: melakukan perulangan pada nama-nama, seperti perulangan pada dictionary.
Tantangan
MudahSkrip mendeklarasikan enum Day, dari MONDAY hingga SUNDAY. Program membaca dua baris: nama hari dengan huruf kapital dan jumlah hari (bilangan bulat, 0 atau lebih).
Cetak dua baris:
- Nama hari,
has the valuedan nilai hari itu dalam enum In, jumlah hari,days:dan nama hari setelah jumlah hari tersebut
Setelah SUNDAY, minggu dimulai kembali dari MONDAY. Untuk input FRIDAY dan 3, outputnya adalah:
FRIDAY has the value 4
In 3 days: MONDAYCoba sendiri
extends Node
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
var day_name := OS.read_string_from_stdin()
var days := int(OS.read_string_from_stdin())
# Cetak nilai hari tersebut dan hari setelah sejumlah hari itu berlalu
pass
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Method untuk StringMencari dalam StringMengganti dan Menghapus SpasiMemisahkan dan MenggabungkanUlasan: Memeriksa Nama Pengguna4Dictionary Bagian 2
Dictionary BersarangArray berisi DictionaryMenggabungkan DictionaryMenyalin DictionaryRangkuman: Penghitung Frekuensi10Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Ringkasan: Mengurutkan dengan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Ringkasan: Menjumlahkan array Bersarang13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2Pengambilan Keputusan Lanjutan
Pencocokan dengan VariabelGuard pada MatchPola arrayPola dictionaryPemeriksaan KeanggotaanUlasan: Parser Perintah5Aplikasi Buku Kontak
Tampilkan MenuTambah Kontak8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Tingkat Tinggi
Method mapMethod filterMethod reduceany dan allUlasan: Validator EmailUlasan: Pemroses Angka3Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DNested Loop dengan Array 2DRangkuman: Array 2DArray Tidak BeraturanPola Umum Array 2DRangkuman: Papan Permainan6Set dengan Dictionary
Apa Itu Set?Dictionary sebagai SetMenambahkan dan MenghapusUnion dan IntersectionSelisih SetRangkuman: Menghapus DuplikatLatihan sendiri: Compiler GDScript online