0Pricing
Swift Academy · درس

استنتاج الأنواع والأنواع الصريحة

تعلّم كيف يستنتج Swift الأنواع ومتى ينبغي التصريح عنها صراحةً

استنتاج الأنواع والأنواع الصريحة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا

Swift لغة *ذات أنواع ثابتة* — إذ إن لكل قيمة نوعًا معروفًا وقت الترجمة. لكنكم نادرًا ما تحتاجون إلى كتابة النوع بأنفسكم، لأن Swift تستنتجه تلقائيًا.

ما استنتاج النوع؟

تفحص Swift القيمة الموجودة في الطرف الأيمن وتستنتج النوع تلقائيًا: ```swift let message = "Hello" // inferred as String let count = 42 // inferred as Int let price = 9.99 // inferred as Double ``` لا حاجة إلى تصريح بالنوع — فالمترجم يستنتجه.

تصريحات الأنواع الصريحة

يمكنكم دائمًا تحديد النوع صراحةً باستخدام النقطتين: ```swift let message: String = "Hello" let count: Int = 42 let price: Double = 9.99 ``` يفيد ذلك عندما لا يكون النوع المستنتج هو النوع المطلوب.

عندما يستنتج Swift النوع الخطأ

تُفسَّر القيم الحرفية ذات الفاصلة العائمة افتراضيًا على أنها `Double`. وإذا احتجتم إلى `Float`، فصرّحوا عنه صراحةً: ```swift let inferred = 3.14 // Double let explicit: Float = 3.14 // Float ``` وبالمثل، تُفسَّر القيم الحرفية الصحيحة افتراضيًا على أنها `Int` — صرّحوا عن النوع لاستخدام `Int32` أو `UInt8` وغيرهما.

سلامة الأنواع عمليًا

بمجرد تحديد النوع، لا يمكن تغييره: ```swift var score = 0 // Int score = "ten" // ❌ cannot assign String to Int ``` تكتشف سلامة الأنواع هذا النوع من الأخطاء وقت الترجمة، قبل وقت التشغيل بوقت طويل.

الدالة type(of:)

استخدم `type(of:)` لفحص نوع القيمة وقت التشغيل: ```swift let value = 42 print(type(of: value)) // Int let name = "Alice" print(type(of: name)) // String ``` يفيد ذلك في تصحيح المفاجآت المتعلقة باستنتاج الأنواع.

الأسماء المستعارة للأنواع

يمنح `typealias` نوعًا موجودًا اسمًا جديدًا لتحسين قابلية القراءة: ```swift typealias Celsius = Double typealias UserID = Int var temperature: Celsius = 36.6 var userId: UserID = 1001 ``` الأسماء المستعارة للأنواع تجميلية بحتة — فلا يتغير النوع الأساسي.

التصريحات دون تهيئة

عند تعريف متغير دون قيمة ابتدائية، *يجب* التصريح عن نوعه: ```swift var name: String // ✓ annotation required name = "Bob" var total: Int total = 0 ``` لا يمكن لـ Swift استنتاج نوع دون وجود قيمة.

القيم الحرفية العددية وقابلية القراءة

تسمح Swift باستخدام الشرطات السفلية في القيم الحرفية العددية لتحسين قابلية القراءة: ```swift let million = 1_000_000 let hex = 0xFF_EC_D3 let binary = 0b1111_0000 ``` يتجاهل المترجم الشرطات السفلية — فهي تجميلية بحتة.

تحويل الأنواع — لا تحويلات ضمنية

لا تحوّل Swift الأنواع ضمنيًا أبدًا. يجب إجراء التحويل صراحةً: ```swift let intVal: Int = 5 let dblVal: Double = Double(intVal) // explicit conversion let sum = Double(intVal) + 2.5 ``` يمنع ذلك الأخطاء الدقيقة الناتجة عن الترقيات العددية غير المقصودة.

مراجعة سريعة

ما النوع الذي تستنتجه Swift للتعبير `let x = 3.14`؟

مراجعة

أهم النقاط: • تستنتج Swift الأنواع من القيم الأولية — ولا حاجة عادةً إلى تصريح بالنوع • تتجاوز التصريحات الصريحة (`: Type`) الاستنتاج • تكون القيم ذات الفاصلة العائمة من النوع `Double` افتراضيًا، والقيم الصحيحة من النوع `Int` • لا توجد تحويلات ضمنية — استخدموا `Int()` و`Double()` وغيرهما • تكشف `type(of:)` عن النوع وقت التشغيل التالي: الأنواع الأساسية — الأرقام وBool وCharacter.

الأسئلة الشائعة

هل درس «استنتاج الأنواع والأنواع الصريحة» مجاني؟

نعم — نص درس «استنتاج الأنواع والأنواع الصريحة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «استنتاج الأنواع والأنواع الصريحة»؟

تعلّم كيف يستنتج Swift الأنواع ومتى ينبغي التصريح عنها صراحةً تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «استنتاج الأنواع والأنواع الصريحة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. let مقابل var: الثوابت والمتغيرات
  2. استنتاج الأنواع والأنواع الصريحة
  3. الأعداد والقيم المنطقية والمحارف
  4. أساسيات String والاستيفاء
← العودة إلى Swift Academy