EduFlow
أساسيات Swift لتطبيقات iOS

اختبار الوحدة: تصميم البيانات بالأنواع

خمسة أسئلة عن هذه الوحدة. أجب عنها كلها، ثم شاهد نتيجتك وسبب صحة كل إجابة أو خطئها.

السؤال 1 من 5

Expense هو struct فيه var amount: Decimal. ماذا يطبع هذا الكود؟

Swift
var list = [Expense(amount: 5)]
var first = list[0]
first.amount = 9
print(list[0].amount)
السؤال 2 من 5

ماذا يطبع هذا الكود؟

Swift
enum Sync {
    case idle
    case syncing(progress: Double)
    case failed(String)
}
let state: Sync = .syncing(progress: 0.4)
switch state {
case .idle: print("Idle")
case .syncing(let p) where p > 0.5: print("Almost")
case .syncing: print("Working")
case .failed(let message): print(message)
}
السؤال 3 من 5

الـ protocol المعرّف protocol Exportable { func csvRow() -> String } له خمسة أنواع متوافقة. يجب أن يحصل كلٌّ منها أيضًا على csvLine، أي csvRow() مع سطر جديد، دون كتابتها خمس مرات. ماذا تضيف؟

السؤال 4 من 5

يخزّن final class ReminderScheduler الخاصية var onFire: (() -> Void)? ويضبط onFire = { self.notify() }. تُظهر أدوات الذاكرة أن الـ schedulers لا تُحرَّر أبدًا. ما الإصلاح؟

السؤال 5 من 5

تقرأ load() المصاريف المحفوظة وترمي خطأً إن كان الملف تالفًا. ماذا يرى المستخدم حين يحدث ذلك؟

Swift
let expenses = (try? load()) ?? []

5 أسئلة بلا إجابة