Fitur Pencarian
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GDScript di Coddy. Pelajaran 59 dari 65.
Tantangan
SedangTambahkan pencarian judul. Pertahankan semua yang kamu tulis pada langkah sebelumnya; hanya library.gd yang berubah.
Tulis search_by_title(text: String) -> Array[Book] di Library. Fungsi ini mengembalikan setiap buku yang judulnya berisi text, sesuai urutan books:
- Pencarian mengabaikan huruf besar dan kecil:
GREATmenemukanThe Great Gatsby. - Sebagian judul saja sudah cukup:
greatjuga menemukanGreat Expectations. textyang kosong mengembalikan setiap buku. Periksa kasus ini terlebih dahulu: di GDScript,"" in "Dune"bernilaifalse.- Buku yang sedang dipinjam ditemukan sama seperti buku lainnya.
Kode yang disediakan menambahkan perintah search TEXT, yang mencetak jumlah buku yang ditemukan dan satu baris untuk setiap buku. Untuk input ini:
Community
book The Great Gatsby|F. Scott Fitzgerald|123456
book To Kill a Mockingbird|Harper Lee|789012
book Great Expectations|Charles Dickens|345678
search great
search zzzoutput-nya adalah:
Results for 'great': 2
- The Great Gatsby by F. Scott Fitzgerald
- Great Expectations by Charles Dickens
Results for 'zzz': 0Kodemu ditulis di book.gd, user.gd, dan library.gd. main.gd berisi kode input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
extends Node
func _ready():
# Kode input/output yang disediakan: biarkan apa adanya
var library := Library.new(OS.read_string_from_stdin())
var line := OS.read_string_from_stdin()
while line != "":
var parts := line.split(" ", true, 1)
var fields: PackedStringArray = parts[1].split("|") if parts.size() > 1 else PackedStringArray()
match parts[0]:
"book":
library.add_book(Book.new(fields[0], fields[1], fields[2]))
"user":
library.add_user(User.new(fields[0], fields[1]))
"borrow":
print(library.borrow_book(fields[0], fields[1]))
"search":
var term: String = parts[1] if parts.size() > 1 else ""
var found: Array = library.search_by_title(term)
print("Results for '%s': %d" % [term, found.size()])
for book in found:
print("- ", book.title, " by ", book.author)
"loans":
var reader: User = library.find_user(fields[0])
print(reader.user_name, " has borrowed:")
for isbn in reader.borrowed_isbns:
print("- ", library.find_book(isbn).title)
"holder":
var book: Book = library.find_book(fields[0])
if book.available:
print(book.title, " is on the shelf")
else:
print(book.title, " is borrowed by ", library.find_user(book.borrower_id).user_name)
"books":
for book in library.books:
print(book)
"users":
for user in library.users:
print(user)
"show":
print(library)
line = OS.read_string_from_stdin()
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass dan objectKata Kunci selfmethodpropertyKonstruktor (_init)Ringkasan: Kalkulator Sederhana4Polimorfisme
Method Overriding Sekali LagiDuck TypingKelas Abstrak dan MethodDesain InterfaceRingkasan: Kalkulator Bentuk7Sinyal
Apa itu Sinyal?Mendeklarasikan dan MemancarkanMenghubungkan ke SinyalSinyal dengan ArgumenRangkuman, Sistem Kesehatan10Pola Desain Bagian 2
Pola CommandPola AdapterPola DecoratorPola Template MethodPola StatePola Composite2Property class
Variabel instance vs. variabel statisFungsi statisSetter propertyGetter propertyPrivat berdasarkan konvensiRangkuman: Pengelola Rekening Bank5Enkapsulasi
Member Publik dan PrivatValidasi dengan SetterPenyembunyian InformasiProperty Hanya-BacaRingkasan: Sistem Catatan Siswa8Konsep OOP Lanjutan
Komposisi vs PewarisanInner ClassNode sebagai KomponenRefCounted vs NodeEnum dalam Class11Proyek: Manajemen Perpustakaan
Gambaran Umum Proyekclass Buku dan PenggunaLatihan sendiri: Compiler GDScript online