0Pricing
Swift Academy · درس

كيفية عمل استنتاج النوع

اكتشف كيف تستنتج Swift الأنواع من السياق.

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

ما هو استدلال النوع

يمكن لـ Swift استنتاج نوع قيمة من سياق التعبير. وغالبًا لا تحتاجون إلى كتابة النوع صراحةً.

let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))

الاستنتاج من القيم الحرفية

تستنتج القيمة الحرفية الصحيحة النوع Int، وتستنتج القيمة العشرية النوع Double، وتستنتج القيمة النصية بين علامتي اقتباس النوع String.

let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))

الاستنتاج من المُهيئ

عند استدعاء مُهيئ، يحدد نوع النتيجة النوع الذي تستنتجه المتغيرات.

let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))

الاستنتاج من القيمة المُعادة للدالة

يأخذ المتغير المُسنَد إليه ناتج استدعاء دالة نوع القيمة التي تعيدها الدالة.

func makeGreeting() -> String {
    return "Hi"
}
let g = makeGreeting()
print(type(of: g))

الاستنتاج في المجموعات

تستنتج القيم الحرفية للمصفوفات والقواميس أنواع عناصرها من القيم الموجودة بداخلها.

let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))

الاستنتاج ثنائي الاتجاه

يستنتج Swift النوع في الاتجاهين: من القيمة إلى المتغير، ومن النوع المُعلن إلى القيمة الحرفية.

let x = 5            // Int inferred from literal
let y: Double = 5   // literal adapts to Double
print(type(of: x), type(of: y))

الاستنتاج عبر التعبيرات

يحل المترجم أنواع التعبير بأكمله معًا، ويختار أنواعًا تجعل جميع العمليات صالحة.

let result = 2 + 3 * 4
print(result)
print(type(of: result))

الاستنتاج يقلل الضوضاء

يحافظ الاستنتاج على نظافة الشيفرة. فكتابة let names: [String] = [...] زائدة عندما تشير القيمة الحرفية أصلًا إلى String.

let names = ["Ada", "Bob", "Cleo"]
print(names.count)

متى يفشل الاستنتاج

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

let empty: [Int] = []
print(empty.isEmpty)

الاستنتاج ثابت

يحدث الاستنتاج في وقت الترجمة. وبعد استنتاج النوع، يصبح ثابتًا؛ إذ إن Swift ليست لغة ذات أنواع ديناميكية.

var n = 10
// n = "text" // would be a compile error
n = 20
print(n)

الاستنتاج والأداء

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

let total = (1...100).reduce(0, +)
print(total)

اختبار سريع

اختبروا مدى استيعابكم للاستنتاج.

مراجعة

يتيح استدلال النوع لـ Swift استنتاج الأنواع من القيم الحرفية والمُهيئات والقيم المُعادة والسياق المحيط، وذلك في وقت الترجمة. وهو يقلل الضوضاء من دون أي تكلفة أثناء التشغيل، لكنه يفشل عندما يتعذر تحديد نوع واحد، مثل المجموعات الفارغة.

let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))

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

هل درس «كيفية عمل استنتاج النوع» مجاني؟

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

ماذا ستتعلم في «كيفية عمل استنتاج النوع»؟

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

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

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

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

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

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

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

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

  1. كيفية عمل استنتاج النوع
  2. متى تضيف التعليقات التوضيحية الصريحة
  3. الاستنتاج مع الثوابت
  4. الاستنتاج في الإغلاقات
← العودة إلى Swift Academy