العودة إلى موقع برمج

بشأن تحدي المعلومات في الدالة المنشئة

swift
#1

ليش اخترنا رقم 2 اكثر خيار كان مستبعد
ممكن توضيح السبب
الاول طريقه انشاء دالة منشئة تحت هيكل
الثالث طريقة اضافة خصائص للهيكل
مو الكائن نفس المتغيرات والثوابت :woman_shrugging:t2:

#2

عفواً تو انتبه الثالث مافيه كلمة self طيب ليش مو الأول

#3

انشاء الكائن ضمن هذا السؤال في الدالة الرئيسية Main
من اجل انشاء كائن جديد ضمن الدالة الرئيسية Main تحتاج الى انشاء كائن من نوع الكلاس وفي حال كان لديك دالة منشئة (الدالة المنشئة تحمل نفس اسم الكلاس) فيمكنك مباشرة تمرير قيم المتغيرات الخاصة ضمن التعريف
لذلك فالاحتمال الاول خاطئ لان اسم الكلاس Car وinit ليست دالة منشئة في هذه الحالة وبالتالي لاتقوم بانشاء كائن جديد

الاحتمال الثالث ايضا خاطئ لان لايمكننا الوصول وتغيير قيم المتغيرات الخاصة مباشرة من داخل الدالة الرئيسية main

الاحتمال الثاني هو الصحيح لان الدالة المنشئة لها نفس اسم الكلاس Car وتقوم بتميرير القيم الافتراضية الى المتغيرات الخاصة

#4

الف شكر يا أستاذ الآن اتضحت المعلومة
وأيضاً بعد مشاهدة درس الكلاس اتضحت الفكرة اكثر لأن التحدي كان قبل درس الكلاس :pray:

احتاج مساعدة في التحدي البرمجي للكلاس ؟
هل احتاج إلى تعريف متغير بعد دالة subject

!!

#5

#6

انتبه ففي حل الطلب الاول لاتحتاج الى اسناد قيم محددة الى العنصر حيث تم تمرير هذه القيم من خلال المعاملات name, gae, subjects
وبالتالي المتغيرات الخاصة بالكائن الجديد يجب ان تأخذ قيم هذه المتغيرات التي تم تمريرها اما بالطريقة التي كتبتها فجيمع الكائنات ستأخذ نفس القيم “احمد”, 29, Java

وضمن السؤال في الطلب الثاني تم تحديد اسم الدالة ب add وبالتالي تحتاج الى تعديل الاسم من subject الى add

ويجب تعريف هذه الدالة ضمن نطاق الكلاس وليس خارجه وتأخذ معامل هو subject الذي سيتم اضافته للمصفوفة
اخيرا وبشكل مماثل لايجب ان تضيف قيمة ثابتة للمصفوفة “Swift” بل يجب اضافة القيمة التي تم تمريرها ضمن الدالة add

1 Like
#7

وماذا عن الآن ؟

#8

اقتربت ولكن الدالة add لاتعيد اي قيمة لذلك لاحاجة ان تعيد قيمة String
وهذه الدالة مختلفة عن الدالة المنشئة حيث لايوجد قوس اغلاق الدالة المنشئة قبلها!

#9

رجعت للدروس اعتقد تقصد اغير مكان الداله بحيث تكون بعد الكلاس مباشره لكن مازال في خطأ عجزت وانا اجرب حلول

#10

الا اذا تقصد اضيف عن طريق self بس مو عارفه اشلون :otter:

#11

لست بحاجة لتعريف الدالة add قبل الدالة المنشئة ولكن فقط انتبه الى النطاقات حيث ان اقواس النطاق لكل دالة في اخر صورة صحيح والكود الخاص بكل دالة موجود ضمن الاقواس الخاصة بها
image

#12

ازعجتك لكن جربتها وما زال في خطأ
يئست والله
الظاهر بعدي للدرس الي بعده

#13

ممتاز اقتربت كثيرا والكود الان صحيح فقط حاول تعديل نوع المعامل داخل الدالة add بدل [String] الى String أي
add(subject: String)
ويجب ان يكون الكود صحيح بشكل كامل بعدها

#14

كويس تم الحل يعطيك العافية
لكن ليش شلنا الأقواس مو subject من نوع مصفوفه والمصفوفه بين قوسين [] مربعه

#15

ممتاز مبارك وهنيئا لك تمكنك من تجاوز التحدي بنجاح
احتجنا المصفوفة لانه يمكن ان يكون لدينا اكثر من subject اما هنا في الدالة فسيتم تمرير subject واحد لذلك لاحاجة لتمريره كمصفوفة

1 Like