البحث في الفهرس
جزء من قسم البرمجة كائنية التوجه في رحلة R على Coddy. الدرس 53 من 57.
التحدي
سهلأضف الأمر SEARCH من خلال الطريقة search_titles(text). حافظ على عمل كل أمر من الخطوات السابقة تمامًا كما كان.
SEARCH <text>: قد يحتوي النص على مسافات. أعد سطرًا واحدًا لكل كتاب يحتوي عنوانه على النص، مع تجاهل حالة الأحرف، وبترتيب معرّف الكتاب:Dune (available)أوEmma (borrowed by ada). عند عدم وجود تطابق، أعدno matches.
يرسل الكود المُزوَّد كل سطر إدخال إلى lib$handle(line) ويطبع كل رد مُعاد في سطر مستقل. أسماء الأعضاء عبارة عن كلمات مفردة مكتوبة بأحرف لاتينية صغيرة، ومعرّفات الكتب أعداد صحيحة، ولا يحتوي الإدخال إلا على الأوامر الموضحة حتى الآن. أي أمر آخر يُرجع unknown command.
ضع الكود في Book.R وMember.R وLibrary.R. يحتوي main.R على كود الإدخال/الإخراج المُزوَّد، ولا يمكن تعديله.
جرّب بنفسك
source("Book.R")
source("Member.R")
source("Library.R")
# كود الإدخال/الإخراج المُزوَّد: اتركه كما هو
input <- suppressWarnings(readLines(file("stdin")))
lib <- Library$new()
for (line in input) {
for (reply in lib$handle(line)) cat(reply, "\n", sep = "")
}
جميع دروس البرمجة كائنية التوجه
1أساسيات S3
التعامل مع الملفاتالقوائم باستخدام فئةدوال المُنشئأساليب الطباعة والتنسيقأدوات التحقق والمساعدةمراجعة - درجات الحرارة2S3 الدوال العامة والطرق
الدوال العامة وUseMethodالطرق الافتراضيةطرق الدوال العامة الأساسيةأساسيات NextMethodمراجعة - مساحات الأشكالتدرّب بنفسك: مترجم R عبر الإنترنت