Pola dictionary
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 9 dari 78.
Pola dictionary mencantumkan kunci dan pola yang harus cocok dengan nilainya. Pola ini cocok dengan dictionary yang memiliki tepat kunci-kunci tersebut, dalam urutan apa pun:
var event := {"type": "move", "dir": "left"}
match event:
{"type": "jump"}:
print("Jump!")
{"type": "move", "dir": var d}:
print("Moving ", d)Moving leftNilai "type" harus "move", dan nilai "dir", apa pun nilainya, disimpan dalam d. Dictionary dengan key yang tidak dicantumkan dalam pola tidak cocok. Tambahkan .. di akhir agar key tambahan diperbolehkan:
var hit := {"type": "attack", "damage": 30, "crit": true}
match hit:
{"type": "attack", "damage": _}:
print("Exactly two keys")
{"type": "attack", "damage": var dmg, ..}:
print("Hit for ", dmg)Hit for 30Kunci yang ditulis tanpa nilai hanya memeriksa apakah kunci tersebut ada: {"name", ..}: cocok dengan dictionary apa pun yang memiliki kunci "name". Guard juga berfungsi di sini: {"type": "attack", "damage": var dmg} when dmg > 50:.
Tantangan
MudahProgram membaca peristiwa game yang ditulis sebagai pasangan key=value yang dipisahkan dengan koma, seperti type=move,dir=left, lalu menyimpannya di dictionary event (sudah ditulis). Semua nilainya berupa string.
Gunakan pernyataan match dengan pola dictionary, dalam urutan berikut:
- Tepat dengan kunci
type("move") dandir: cetakMovingdan arahnya - Tepat dengan kunci
type("attack") dandamage: cetakTaking, nilai damage, dandamage typebernilai"heal", dengan kunci lainnya apa pun: cetakHealing- Dictionary lain apa pun yang memiliki kunci
type: cetakUnknown event:dan nilai type - Hal lainnya: cetak
Invalid event
Untuk input type=attack,damage=30, outputnya adalah:
Taking 30 damagePeristiwa seperti type=move,dir=up,speed=2 memiliki kunci tambahan, jadi program mencetak Unknown event: move.
Coba sendiri
extends Node
func _ready():
var event := {}
for pair in OS.read_string_from_stdin().split(","):
var kv := pair.split("=")
event[kv[0]] = kv[1]
# Cocokkan event dengan pola dictionary
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