المعاملات
المعاملات
المعاملات درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 1 دروس في المجموع.
مقدمة
مرحبًا،
سنتعلم في هذا القسم الميزات المفيدة للمعاملات في لغة Swift.
أول ما سنتعلمه هو المعاملات المتغيرة.
المعامل المتغير هو معامل يمكنه قبول صفر من القيم أو أكثر من النوع نفسه. ويمكن استخدامه عندما لا نستطيع التنبؤ بدقة بعدد المعاملات التي سيقبلها.
مثال
يمكن أن تحتوي الدالة على معامل متغير واحد كحد أقصى.
دعونا نطبّق مثالًا.
func arithmeticMean(_ numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total / Double(numbers.count)
}
var result = arithmeticMean(1, 2, 3, 4, 5)
print(result)
// returns 3.0, which is the arithmetic mean of these five numbers
result = arithmeticMean(3, 8.25, 18.75)
print(result)
// returns 10.0, which is the arithmetic mean of these three numbersتحذير
ينشئ المعامل المتغير في الواقع ثابتًا على شكل مصفوفة ثابتة.
معامل inout
تكون معاملات الدوال ثابتة افتراضيًا.
ستؤدي محاولة تغيير معامل دالة داخل جسمها إلى حدوث خطأ وقت الترجمة.
إذا أردنا كتابة دالة وتغيير قيمة معاملها، مع الاحتفاظ بهذا التغيير بشكل دائم حتى بعد انتهاء تنفيذ الدالة، فعلينا استخدام معامل inout.
مثال
عند استدعاء الدالة، تُمرَّر الوسيطة إلى اسم المتغير مسبوقة بالرمز &. وهذا يعني أن الدالة يمكنها تغيير المتغير.
لا يمكن أن تحتوي معاملات inout على قيمة افتراضية. ولا يمكن وسم المعاملات المتغيرة بالكلمة المفتاحية inout.
/*
In the example below, the value of someInt
is assigned to anotherInt and the value
of anotherInt to someInt.
*/
// Note that these two types have variables.
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
var someInt = 3
var anotherInt = 107
// Note that the corresponding arguments
//are passed ampersant while calling the function.
swapTwoInts(&someInt, &anotherInt)
print("someInt is now \(someInt), and anotherInt is now \(anotherInt)")
// Prints "someInt is now 107, and anotherInt is now 3"تهانينا
تهانينا 🎉
تعلّمنا في هذا الدرس ميزات المعاملات في Swift.
نراكم في الدرس التالي.

الأسئلة الشائعة
هل درس «المعاملات» مجاني؟
نعم — نص درس «المعاملات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 1 دروس في المجموع.
ماذا ستتعلم في «المعاملات»؟
المعاملات تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 1.
كم من الوقت يستغرق درس «المعاملات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.