مراجعة - عنصر المخزون
جزء من قسم البرمجة كائنية التوجه في رحلة Swift على Coddy. الدرس 11 من 57.
التحدي
متوسطأكمل البنية StockItem بالخاصيتين name وquantity. أضف الطريقتين القابلتين للتغيير receive(_:) (تضيف) وship(_:) (تطرح فقط عند توفر كمية كافية في المخزون، وتُرجع ما إذا كانت العملية قد تمت)، والطريقة غير القابلة للتغيير label() التي تُرجع tea: 12 أو tea: out of stock عندما تكون الكمية 0.
ثم أكمل process(start:commands:): فهي تنشئ العنصر، وتحتفظ بنسخة منه تُسمى opening قبل الأمر الأول، وتطبّق الأوامر، وتُرجع سطرًا واحدًا لكل شحنة مرفوضة (cannot ship 5)، ثم now متبوعًا بتسمية العنصر، وwas متبوعًا بتسمية opening.
يقرأ الكود المزوَّد العنصر بالصيغة name,quantity والأوامر بالصيغة +n أو -n، ويطبع كل سطر مُرجع.
ضع الكود الخاص بك في StockItem.swift وFunctions.swift. يحتوي main.swift على كود الإدخال/الإخراج المزوَّد، ولا يمكن تعديله.
جرّب بنفسك
// كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
var input: [String] = []
while let line = readLine() { input.append(line) }
let p = input[0].split(separator: ",").map(String.init)
let item = StockItem(name: p[0], quantity: Int(p[1])!)
for line in process(start: item, commands: Array(input.dropFirst())) { print(line) }
جميع دروس البرمجة كائنية التوجه
1الأصناف والكائنات
العمل مع الملفاتتعريف الأصنافالأساليب وselfالمُهيِّئاتالأصناف هي مراجعمراجعة - بطاقة المكتبة4التغليف
التحكم في الوصولللقراءة فقط من الخارجحماية الحالةالمهيئات القابلة للفشلمراجعة - الحساب البنكي7تعدد الأشكال والأنواع العامة
تعدد الأشكالتحويل الأنواعالدوال العامةالأنواع العامةمراجعة - حاسبة الأشكالتدرّب بنفسك: Playground لـ Swift