האם לעתים קרובות אתה מוצא את עצמך מעתיק ומדביק את הקוד שלך לשימוש חוזר בחלקים שונים בתוכנית שלך?
אם כן, כדאי לך לשקול להשתמש בפונקציות. פונקציות הן תכונה חזקה מאוד של שפות תכנות. הם יכולים להפוך את הקוד ליעיל יותר, קל יותר לקריאה ואלגנטי.
מהי פונקציה?
פונקציה היא גוש קוד המבצע משימה. אפשר לקרוא לזה ו נעשה שימוש חוזר מספר פעמים. אתה יכול להעביר מידע לפונקציה והוא יכול לשלוח מידע בחזרה. בשפות תכנות רבות יש פונקציות מובנות אליהן תוכלו לגשת בספריה, אך תוכלו גם ליצור פונקציות משלכם.
למדו את יסודות הרקורסיה, הכלי החיוני אך מעט מכוון את הדעת עבור מתכנתים.
כאשר אתה מתקשר לפונקציה, התוכנית תשהה את התוכנית הנוכחית ותבצע את הפונקציה. הפונקציה תקרא מלמעלה למטה. לאחר השלמת הפונקציה, התוכנית ממשיכה לפעול במקום בו הושהתה. אם הפונקציה החזירה ערך, ערך זה ישמש במקום בו נקראה לפונקציה.
איך כותבים פונקציה?
ישנן דרכים רבות ושונות לכתוב פונקציות. התחביר המדויק יהיה תלוי בשפה בה אתה מתכנת. אנו נראה דוגמאות ב- Python, JavaScript ו- C ++ כדי להדגים מגוון תחביר תכנותי.
קָשׁוּר: מדוע שפות תכנות אינן יכולות להתקיים ללא פונקציות
פונקציות בטלות
הסוג הראשון של פונקציה שנבחן היא פונקציה ריק. זה פשוט אומר שהפונקציה לא מחזירה ערך. פונקציות Void משמשות להשלמת סט הוראות. בדוגמאות אלה נקראת הפונקציה שכתבנו helloFunction. מטרת הפונקציה היא להפיק "שלום עולם".
טיפ: תן לפונקציות שמות המסבירים מה הם עושים. יהיה קל יותר לנהל פונקציות ולקרוא את הקוד ככל שהתוכנית שלך תהיה מורכבת יותר.
פִּיתוֹן
def helloFunction ():
הדפס ("שלום עולם")
helloFunction ()
מילת המפתח def משמש בפייתון כדי להגדיר וליצור פונקציה. הבא, הוא שם הפונקציה. ההוראות בפונקציה עוקבות אחר השורה הבאה אחרי המעי הגס. שטח לבן חשוב בפייתון, אז הקפד להזין את כל הקוד שאתה רוצה שהפונקציה שלך תפעל. בדוגמה לעיל, הפונקציה מפעילה שורת קוד אחת.
עיניך החדות אולי הבחינו בכך הדפס() הוא גם פונקציה, אבל זה נקרא אחרת מהפונקציה שלנו. החזק את המחשבה הזו עכשיו, נחקור את הפרמטרים של פונקציות בהמשך.
JavaScript
פונקציה helloFunction () {
התראה ("שלום עולם!");
}
helloFunction ();
ב- JavaScript מילת המפתח פוּנקצִיָה משמש ליצירת פונקציות. לאחר מכן, יש לנו את שם הפונקציה. כל קוד הנופל בין הסוגריים המסולסלים מופעל כאשר קוראים לפונקציה.
שטח לבן אינו חשוב ב- JavaScript, אך נהוג להזין את הקוד בפונקציה. הזחה מקלה על הקריאה בקוד, וזה חשוב מאוד ככל שהתוכניות שלך הופכות מורכבות יותר.
הערה: כמו הדפס() בדוגמה הקודמת, עֵרָנִי() הוא גם פונקציה.
C ++
#לִכלוֹל
באמצעות std namespace;
בטל helloFunction () {
cout << "שלום עולם!";
}
int main () {
helloFunction ();
החזר 0;
}
פונקציות נוצרות בצורה שונה ב- C ++. במקום מילת מפתח להגדרת פונקציה, המילה הראשונה מתארת את סוג הנתונים שהפונקציה תחזיר. במקרה זה, הפונקציה שלנו לא מחזירה נתונים כלשהם, ולכן הנתונים בטלים. לאחר מכן, יש לנו את שם הפונקציה. בדומה ל- JavaScript, כל הקוד בין הסוגריים המסולסלים מופעל כאשר קוראים לפונקציה. כמו כן בדומה ל- JavaScript, שטח לבן אינו משפיע על הפונקציה אך הוא נוהג טוב.
האם זיהית פונקציה אחרת בקוד C ++? כן, רָאשִׁי() הוא פונקציה. כאשר אתה מבצע תוכנית C ++, אתה מתקשר אוטומטית לפונקציה הראשית. כאשר הפונקציה הראשית הושלמה בהצלחה, היא מחזירה 0 כאשר היא יוצאת מהתוכנית כדי לאות שלא היו שגיאות בהפעלת התוכנית.
פונקציות הדורשות ערכים
פונקציות הריקנות נהדרות אם אתה מגלה שאתה כותב את אותה קטע קוד שוב ושוב. אבל הם יכולים להגביל. הם סטטיים ולא משתנים. הם תמיד ממלאים את אותן ההוראות. אחת הדרכים בהן אנו יכולים להגביר את התועלת שלהם היא להעביר ערכים שונים לפונקציה.
שמתם לב שסוגריים עוקבים אחר שמות כל הפונקציות שלנו. בסוגריים נוכל להכריז שיש צורך בנתונים להפעלת הפונקציה שלנו. אז נוכל להשתמש בנתונים המועברים לפונקציה שלנו בפונקציה. בואו נסתכל שוב על הדוגמאות הקודמות, אך הפעם נעביר את המשפט שאנו רוצים שיוצא.
פִּיתוֹן
def helloFunction (newPhrase):
הדפס (newPhrase)
helloFunction ("הביטוי החדש שלנו")
כעת, בין הסוגריים, הפונקציה שלנו מצהירה שהיא זקוקה למשתנה כדי להריץ. קראנו למשתנה newPhrase וכעת יכול להשתמש בו בתפקיד שלנו. כאשר אנו קוראים לפונקציה, עלינו להעביר את המידע המבוקש על ידי הצבתו בין הסוגריים. אותם שינויים בוצעו ב- JavaScript.
JavaScript
פונקציה helloFunction (newPhrase) {
התראה (newPhrase);
}
helloFunction ("הביטוי החדש שלנו");
C ++
#לִכלוֹל
באמצעות std namespace;
בטל helloFunction (מחרוזת newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("הביטוי החדש שלנו");
החזר 0;
}
הפונקציה C ++ שלנו דרשה קצת יותר מידע. אנו יודעים שהפונקציה שלך רוצה נתוני מחרוזת, אבל זה לא מספיק טוב עבור C ++. כאשר אתה יוצר את הפונקציה שלך עליך לציין איזה סוג נתונים הפונקציה שלך דורשת. אם לא תשלח את סוג הנתונים הנכון, הפונקציה תיצור שגיאה.
זה אולי נראה קצת מעצבן, אבל שפות קפדניות יכולות לעתים קרובות לחסוך לך כאבי ראש. אם אתה כותב פונקציה ב- JavaScript שדורשת מספר שלם, אך המספר נשלח כמחרוזת, הוא יכול ליצור באג שקשה מאוד לאתר.
קָשׁוּר: 5 שפות תכנות פונקציונליות שכדאי להכיר
פונקציות שמחזירות ערך
יכולת התפקוד הסופית אותה נסקור היא החזרת נתונים. זה חשוב במיוחד כאשר אתה רוצה לשנות נתונים לפני שאתה משתמש בהם. למרות שתוכל לכתוב את זה באופן מקוון, אם תשתמש באותם חישובים פעמים רבות, כמו להמיר את הקיסרות למדד, ייתכן שיהיה יותר הגיוני לכתוב את זה כפונקציה. הדוגמה שלנו תהיה פשוטה יותר. הפונקציה שלנו תדרוש שני מספרים שלמים ותחזיר את הסכום.
פִּיתוֹן
def addingFunction (a, b):
החזר a + b
הדפס (AddFunction (2, 4))
בדוגמה זו, הפונקציה שלנו דורשת שני משתנים במקום אחד. אנו מציינים זאת על ידי הפרדת שמות המשתנים שלנו עם פסיק. מילת המפתח לַחֲזוֹר אומר לפונקציה להחזיר את הנתונים הבאים, במקרה זה, 2 + 4 או 6. אנו קוראים לפונקציה בתוך ה- הדפס() פוּנקצִיָה.
ברגע שהתוכנית שלנו הגיעה לקו זה, היא הייתה מושהית, מפעילה את התפקיד שלנו ואז ממשיכה כאילו addingFunction (2, 4) היה למעשה רק הערך המוחזר 6.
JavaScript
קוד ה- JavaScript דומה מאוד לקוד ה- Python. ההבדל העיקרי הוא שהפונקציה נקראת בהתראה.
function addingFunction (a, b) {
להחזיר a + b;
}
התראה (addingFunction (2, 4));
C ++
#לִכלוֹל
באמצעות std namespace;
int addingFunction (int a, int b) {
להחזיר a + b;
}
int main () {
cout << addingFunction (2, 4);
החזר 0;
}
קוד C ++ פועל באופן דומה, אך כרגיל, הוא דורש קצת יותר מידע. ראשית, עלינו לומר איזה סוג נתונים הפונקציה שלנו תחזיר. אתה תראה את זה בָּטֵל השתנה ל int. המשמעות היא שבמקום להחזיר נתונים, הפונקציה שלנו תחזיר מספר שלם. מעבר לכך, הקוד דומה לקוד שכבר חקרנו.
נהל את הפונקציות שלך
דבר מהנה בפונקציות הוא שפונקציות יכולות לקרוא לפונקציות אחרות. הם יכולים אפילו לקרוא לעצמם! אך בכוח רב באה אחריות גדולה. אל תשגעו ביצירת קוד עם פונקציות שקוראות לפונקציות אחרות שקוראות לפונקציות נוספות.
כאמור, בכל פעם שמתקשרים לפונקציה התוכנית מושהית בזמן שהיא מפעילה את הפונקציה. המשמעות היא שהתוכנית נשמרת בזיכרון פעיל. אם אתה מתקשר למספר פונקציות נוספות מבלי להשלים אותן, אתה משתמש בזיכרון פעיל יותר. אם אתה לא נזהר, התוכנית שלך יכולה לצאת מכלל שליטה.
משתנים גלובליים אולי נראים פשוטים, אך לעתים קרובות הם הגורמים לכל כך הרבה באגים. כך תוכל לייעל את הקוד שלך עם אנקפסולציה.
- תִכנוּת
- תִכנוּת
- תכנות פונקציונלי

י. סיטון הוא סופר מדע המתמחה בפירוק נושאים מורכבים. יש לה דוקטורט מאוניברסיטת ססקצ'ואן; המחקר שלה התמקד בשימוש בלמידה מבוססת משחק להגברת מעורבות התלמידים ברשת. כשהיא לא עובדת, תמצא אותה עם קריאה, משחקי וידאו או גינון.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
צעד אחד נוסף !!!
אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.