ما هي وظيفة في البرمجة؟

ما هي وظيفة في البرمجة؟

هل تجد نفسك غالبًا تنسخ وتلصق الكود الخاص بك لإعادة استخدامه في أقسام مختلفة في برنامجك؟





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





ما هي الوظيفة؟

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





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

كيف تكتب وظيفة؟

هناك العديد من الطرق المختلفة لكتابة الوظائف. سيعتمد بناء الجملة الدقيق على اللغة التي تبرمج بها. سنعرض أمثلة في Python و JavaScript و C ++ لإظهار مجموعة من بناء جملة البرمجة.



الموضوعات ذات الصلة: لماذا لا يمكن أن توجد لغات البرمجة بدون وظائف

وظائف باطلة

النوع الأول من الدالة الذي سننظر إليه هو دالة باطلة. هذا يعني ببساطة أن الوظيفة لا تُرجع قيمة. يتم استخدام الوظائف الفارغة لإكمال مجموعة من التعليمات. في هذه الأمثلة ، تسمى الوظيفة التي كتبناها مرحبا . الغرض من الوظيفة هو إخراج 'Hello World'.





تلميح: أعط أسماء الوظائف التي تشرح ما تفعله. سيكون من الأسهل إدارة الوظائف وقراءة الكود حيث يصبح برنامجك أكثر تعقيدًا.

بايثون





def helloFunction():
print('Hello World')
helloFunction()

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

ربما لاحظت عيناك الثاقبة ذلك مطبعة() هي أيضًا دالة ، ولكنها تسمى بشكل مختلف عن وظيفتنا. تمسك بهذه الفكرة الآن ، وسوف نستكشف الدوال والمعلمات لاحقًا.

جافا سكريبت

أشياء تفعلها على الإنترنت عندما تشعر بالملل
function helloFunction(){
alert('Hello World!');
}
helloFunction();

في JavaScript ، الكلمة الأساسية وظيفة يستخدم لإنشاء وظائف. بعد ذلك ، لدينا اسم الوظيفة. يتم تشغيل أي كود يقع بين الأقواس المتعرجة عند استدعاء الوظيفة.

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

ملاحظة: يشبه إلى حد كبير مطبعة() في المثال السابق ، إنذار() هي أيضا وظيفة.

C ++

#include
using namespace std;
void helloFunction(){
cout << 'Hello World!';
}
int main(){
helloFunction();
return 0;
}

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

هل لاحظت وظيفة أخرى في كود C ++؟ نعم، الأساسية() هي وظيفة. عند تنفيذ برنامج C ++ ، تقوم تلقائيًا باستدعاء الوظيفة الرئيسية. عند اكتمال الوظيفة الرئيسية بنجاح ، فإنها ترجع 0 لأنها تخرج من البرنامج للإشارة إلى عدم وجود أخطاء في تشغيل البرنامج.

الوظائف التي تتطلب قيمًا

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

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

بايثون

def helloFunction(newPhrase):
print(newPhrase)
helloFunction('Our new phrase')

الآن ، بين القوسين ، تعلن الدالة أنها تحتاج إلى متغير لتشغيله. لقد قمنا بتسمية المتغير عبارة جديدة ويمكن الآن استخدامه في وظيفتنا. عندما نستدعي الوظيفة ، نحتاج إلى تمرير المعلومات المطلوبة بوضعها بين قوسين. تم إجراء نفس التغييرات في JavaScript.

جافا سكريبت

function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction('Our new phrase');

C ++

كيفية إضافة تطبيقات إلى تلفزيون ذكي vizio
#include
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction('Our new Phrase');
return 0;
}

تتطلب وظيفة C ++ الخاصة بنا مزيدًا من المعلومات. نعلم أن وظيفتك تريد بيانات سلسلة ، لكن هذا ليس جيدًا بما يكفي لـ C ++. عند إنشاء وظيفتك ، يجب عليك تحديد نوع البيانات التي تتطلبها وظيفتك. إذا لم ترسل النوع الصحيح من البيانات ، ستنشئ الوظيفة خطأ.

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

الموضوعات ذات الصلة: 5 لغات برمجة وظيفية يجب أن تعرفها

الوظائف التي تُرجع قيمة

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

بايثون

def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))

في هذا المثال ، تتطلب وظيفتنا متغيرين بدلاً من واحد. نشير إلى ذلك بفصل أسماء المتغيرات بفاصلة. الكلمة إرجاع يخبر الدالة بإرجاع البيانات التالية ، في هذه الحالة ، 2 + 4 ، أو 6. نسمي الوظيفة داخل مطبعة() وظيفة.

بمجرد وصول برنامجنا إلى هذا الخط ، سيتوقف مؤقتًا ، ويدير وظيفتنا ، ثم يستمر كما لو وظيفة الإضافة (2 ، 4) كانت في الواقع مجرد القيمة التي تم إرجاعها 6.

جافا سكريبت

كود JavaScript يشبه إلى حد بعيد كود Python. الاختلاف الأساسي هو أن الوظيفة تسمى في تنبيه.

function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));

C ++

#include
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}

يعمل كود C ++ بشكل مشابه ، ولكن كالعادة ، يتطلب القليل من المعلومات. أولاً ، علينا تحديد نوع البيانات التي ستعيدها وظيفتنا. سترى أن فارغ تم تغييره إلى int . هذا يعني أنه بدلاً من إرجاع أي بيانات ، ستعيد وظيفتنا عددًا صحيحًا. علاوة على ذلك ، فإن الكود مشابه للكود الذي اكتشفناه بالفعل.

إدارة وظائفك

الشيء الممتع حول الوظائف هو أن الوظائف يمكنها استدعاء وظائف أخرى. يمكنهم حتى تسمية أنفسهم! ولكن مع القوة الكبيرة تأتي مسؤولية كبيرة. لا تكن مجنونًا بإنشاء كود مع وظائف تستدعي وظائف أخرى تستدعي المزيد من الوظائف.

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

يشارك يشارك سقسقة بريد الالكتروني كيفية الحفاظ على الكود الخاص بك نظيفًا باستخدام تغليف الكائن

قد تبدو المتغيرات العامة بسيطة ، لكنها غالبًا ما تسبب الكثير من الأخطاء. فيما يلي كيفية تبسيط التعليمات البرمجية الخاصة بك بالتغليف.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • برمجة
  • البرمجة الوظيفية
نبذة عن الكاتب جينيفر سيتون(21 مقالة منشورة)

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

المزيد من Jennifer Seaton

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك