مراجعة - بطاقة المكتبة
جزء من قسم البرمجة كائنية التوجه في رحلة Swift على Coddy. الدرس 6 من 57.
التحدي
متوسطأكمل الصنف LibraryCard. يأخذ المُهيِّئ العضو name وlimit (القيمة الافتراضية 3)، ويبدأ دون كتب مستعارة. تُرجع borrow(_:) القيمة true وتضيف العنوان، ما لم تكن البطاقة قد بلغت حدّها أو كانت تحتوي على ذلك العنوان بالفعل. تُرجع giveBack(_:) القيمة true عند إزالة العنوان. تُرجع status() القيمة Ada: 2/3 (Dune, Emma) مع العناوين بترتيب استعارتها، أو Ada: 0/3 عند عدم استعارة أي شيء.
يقرأ الكود المُزوَّد الاسم، والحد (أو سطرًا فارغًا لاستخدام القيمة الافتراضية)، ثم الأوامر +title أو -title. ويطبع ok أو no لكل أمر، ثم يطبع status() في النهاية.
ضع الكود الخاص بك في LibraryCard.swift. يحتوي main.swift على كود الإدخال/الإخراج المُزوَّد، ولا يمكن تعديله.
جرّب بنفسك
// كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
var input: [String] = []
while let line = readLine() { input.append(line) }
let card = input[1].isEmpty ? LibraryCard(name: input[0]) : LibraryCard(name: input[0], limit: Int(input[1])!)
for cmd in input.dropFirst(2) {
let title = String(cmd.dropFirst())
let done = cmd.hasPrefix("+") ? card.borrow(title) : card.giveBack(title)
print(done ? "ok" : "no")
}
print(card.status())
جميع دروس البرمجة كائنية التوجه
1الأصناف والكائنات
العمل مع الملفاتتعريف الأصنافالأساليب وselfالمُهيِّئاتالأصناف هي مراجعمراجعة - بطاقة المكتبة4التغليف
التحكم في الوصولللقراءة فقط من الخارجحماية الحالةالمهيئات القابلة للفشلمراجعة - الحساب البنكي7تعدد الأشكال والأنواع العامة
تعدد الأشكالتحويل الأنواعالدوال العامةالأنواع العامةمراجعة - حاسبة الأشكالتدرّب بنفسك: Playground لـ Swift