البروتوكولات والإرسال الديناميكي

Swift Hard protocols

مهمة «البروتوكولات والإرسال الديناميكي»

```json
{
"task": "نفذ نظامًا لمعالجة تسلسل البيانات بناءً على البروتوكولات. حدد بروتوكول `Serializable` مع شرط وجود دالة `func serialize() -> String`. أنشئ الهياكل `User` (مع الحقول name: String, age: Int)، `Address` (city: String, street: String)، `Product` (id: Int, title: String, price: Double). يجب أن يتوافق كل هيكل مع بروتوكول `Serializable`: قم بإرجاع سلسلة نصية شبيهة بـ JSON (على سبيل المثال، {\"name\":\"John\",\"age\":30}). اكتب دالة `func processSerialization<T: Serializable>(_ items: [T]) -> [String]`، والتي تستقبل مصفوفة من العناصر المتوافقة مع البروتوكول، وتعيد مصفوفة من سلاسل التسلسل. يتم الحفاظ على ترتيب العناصر. القيود: يمكن أن تحتوي السلاسل على أحرف لاتينية فقط، ومسافات، وأرقام؛ لا حاجة للهروب. الإخراج: كل سلسلة في سطر جديد."
}
```

تنسيق الإدخال

السطر الأول هو عدد صحيح N (1 ≤ N ≤ 100) — عدد الكائنات. ثم لكل كائن: سطر يحتوي على النوع (User, Address, Product) والحقول المقابلة مفصولة بمسافة. بالنسبة لـ User: name (String) age (Int). بالنسبة لـ Address: city (String) street (String). بالنسبة لـ Product: id (Int) title (String) price (Double).

تنسيق الإخراج

N أسطر، كل منها هو نتيجة تسلسل الكائن المقابل بالتنسيق المحدد.

أمثلة

مثال 1

الإدخال
2 Address Paris RueDeRivoli Product 42 Book 12.5
الإخراج
{"city":"Paris","street":"RueDeRivoli"} {"id":42,"title":"Book","price":12.5}

مثال 2

الإدخال
3 2 3 1
الإخراج

مثال 3

الإدخال
3 https://httpbin.org/delay/1 https://httpbin.org/delay/2 https://httpbin.org/delay/0.5 1000
الإخراج
main.swift