0Pricing
Swift Academy · درس

تسميات الوسائط وأسماء المعلمات

تعلّم الفرق بين أسماء المعلمات الخارجية والداخلية وكيف تبدو استدعاءات Swift كأنها جمل إنجليزية

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

مرحبًا

لكل معلمة في دوال Swift اسمان: تسمية وسيطة *خارجية* تُستخدم عند موضع الاستدعاء، واسم معلمة *داخلي* يُستخدم داخل جسم الدالة.

الأسماء الخارجية مقابل الداخلية

```swift func greet(person name: String) { print("Hello, \(name)!") } greet(person: "Alice") // call site uses 'person' // body uses 'name' ``` تحسّن التسمية الخارجية قابلية القراءة عند موضع الاستدعاء.

حذف التسمية الخارجية باستخدام _

استخدم `_` لمنع ظهور تسمية الوسيطة: ```swift func square(_ n: Int) -> Int { n * n } print(square(5)) // 25 — no label needed ``` يشيع ذلك في الدوال الرياضية ودوال الأدوات، حيث تكون التسمية زائدة عن الحاجة.

مطابقة التسمية للإنجليزية

تجعل التسميات المختارة بعناية مواضع الاستدعاء تبدو كالجمل: ```swift func move(from source: String, to destination: String) {} move(from: "Home", to: "Work") ``` هذا مبدأ أساسي في تصميم واجهات Swift البرمجية.

التسمية الخارجية والداخلية نفسها

عند توفير اسم واحد فقط، فإنه يؤدي دور الاسمين معًا: ```swift func add(a: Int, b: Int) -> Int { a + b } add(a: 3, b: 4) // label == parameter name ``` هذا أسلوب شائع في الدوال البسيطة.

المعلمات المتعددة

```swift func divide(_ numerator: Double, by denominator: Double) -> Double { numerator / denominator } let result = divide(10.0, by: 2.0) // 5.0 ``` غالبًا لا تحمل المعلمة الأولى تسمية، بينما تحمل المعلمات اللاحقة تسميات وصفية.

تسميات المعلمات في واجهات API

توضح واجهات Apple نفسها هذا النمط: ```swift array.insert(42, at: 0) string.replacingOccurrences(of: "a", with: "b") URLSession.shared.dataTask(with: request) ``` اقرأ كل موضع استدعاء بصوت عالٍ؛ من المفترض أن يبدو طبيعيًا.

التحميل الزائد باستخدام تسميات مختلفة

تُعد الدوال التي تحمل الاسم نفسه لكن تسميات مختلفة دوال مميزة: ```swift func load(url: String) {} func load(file: String) {} load(url: "https://example.com") load(file: "/tmp/data.json") ``` تميّز التسميات بين حالات التحميل الزائد دون تغيير الاسم الأساسي.

استدعاءات الدوال المتداخلة والتسميات

تظل التسميات مطبقةً عند التداخل أيضًا: ```swift func stringify(_ n: Int) -> String { "\(n)" } func print(line value: String) { print(value) } print(line: stringify(42)) // "42" ```

أفضل الممارسات

إرشادات: • احذف التسمية الأولى عندما يوحي بها اسم الدالة: `makeURL(string:)` → `makeURL("…")` • استخدم حروف الجر النحوية كتسميات خارجية: `at` و`with` و`from` و`to` • تجنب التسميات التي تكرر معلومات النوع: `func add(intValue v: Int)` زائدة عن الحاجة

تحقق سريع

ما الرمز الذي يمنع ظهور تسمية الوسيطة الخارجية عند موضع الاستدعاء؟

مراجعة

أهم النقاط: • `func f(external internal: Type)` — اسمان، أحدهما خارجي عند موضع الاستدعاء • يمنع `_` ظهور التسمية الخارجية • تجعل التسميات الجيدة مواضع الاستدعاء تبدو كالجمل الإنجليزية • تكون التسمية والاسم متطابقين عند توفير اسم واحد فقط التالي: المعلمات الافتراضية ومتغيرة العدد.

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

هل درس «تسميات الوسائط وأسماء المعلمات» مجاني؟

نعم — نص درس «تسميات الوسائط وأسماء المعلمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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. معلمات In-Out والقيم المرجعة المتعددة
  4. الدوال كقيم من الدرجة الأولى
← العودة إلى Swift Academy