
if ו-for יוצרים טווח משלהם. משתנה שהוגדר בתוך if נעלם אחרי הסוגר.הטקסט המלא של הדקות הראשונות בהרצאה «טווח הכרה - Scope» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, ההרצאה היום תעסוק בנושא שנקרא טווח הכרה של משתנים. זה נקרא גם באנגלית Variable Scope, הסקופ של משתנה, הטווח הכרה שלו. עכשיו מה זה בעצם אומר טווח הכרה של משתנה?
בואו נחזור רגע לדוגמה שלנו. עכשיו יצרתי פה פונקציה, שלושה פונקציות, נשים אותה רגע יותר פבליק. הפונקציה הראשונה קראתי לה Update Car Info, לעדכן את הנתונים של הרכב.
כשאני נכנס לפונקציה אני קורא לפונקציה נוספת שיצרתי שאני קראתי לה assign car name, לתת ערך לשם של הרכב, ואחר כך אני קורא לפונקציה נוספת שקראתי לה assign car color, לתת את הצבע של הרכב, אוקיי?
עכשיו, מה זה אומר בעצם טווח הכרה שמשתנה, איפה מכירים אותו? אני רואה את המשתנים פה, אז אני בטוח מכיר אותם. אז בוא נראה רגע, אם אני עכשיו נמצא עכשיו בתוך הפונקציה הזאת, assign car color, ואני עכשיו עוצר פה איזה משתנה שנקרא לו, אני רוצה לתת פה ערך לצבע, צבע של הרכב.
אז אני אצור פה משתנה מסוג של סטרינג, נקרא לו NewCarPaler וניתן לו את הערך של בלו. עכשיו, אני רוצה, מכיוון שזה המשתנה שמייצג את הצבע של הרכב שלנו, נכון? זה הקלאס שלנו וזה המשתנים של הקלאס וזה הצבע של הרכב, אז אני רוצה לתת את הצבע של בלו.
אז אני רוצה לתת ל-Color את הצבע של New Car Color. עכשיו, אם תשימו לב, כשאני עכשיו עשיתי את הדבר הבא, כשעשיתי New Car, New Car Color, אתם רואים שהמשתנה הזה הוא מוכר, אוקיי?
שימו לב שרשום פה גם Local Variable, משתנה מקומי. המשתנה הזה, אנחנו רואים אותו. כשכתבתי New, הוא כבר היה לי פה השלמה אוטומטית New Car Color.
זאת אומרת, הוא קיים, הוא מזוהה. רשום פה גם local variable באופן מקומי. מה זאת אומרת מקומי? אני עכשיו נמצא בין הסוגר הזה לבין הסוגר הזה, בין הסוגר הזה לבין הסוגר הזה.
עכשיו, זה הגוף של הפונקציה, כמו שאמרנו בשיעור שלנו על פונקציות. כל זה זה הגוף של הפונקציה. פה הפונקציה מתחילה ופה הפונקציה מסתיימת.
אם אני עכשיו הגדרתי משתנה בתוך הפונקציה בין החלק הזה לבין החלק הזה, אותו משתנה יהיה קיים רק בין החלק הזה לבין החלק הזה.
רק כשאני אצא מפה מהנקודה הזאתי ויחזור לפה, המשתנה הזה כבר ייעלם, הוא לא יהיה קיים. אז שוב, אם אני יכול ללחוץ New, אני רואה שרשום לי פה Local Variable, משתנה מקומי.
למה מקומי? כי אני עכשיו נמצא פה באופן מקומי, אני נמצא פה באזור הזה, בתוך הפונקציה. אז המשתנה הזה הוא משתנה מקומי.
המשתנה הזה, המשתנה הזה, המשתנה הזה, המשתנים האלה זה לא משתנים מקומיים, אבל הם משתנים ששייכים לקלאס, למחלקה, אוקיי?
אם אני עכשיו רושם, אני רוצה לרשום את המשתנה color, אני רואה שרשום לי פה car color, זאת אומרת המשתנה הזה הוא משתנה ששייך לקלאס, למחלקה car.
וכשאני עושה את הדבר הבא, אז אני רואה שהמשתנה הזה new car color הוא קיים לי, new car color. עכשיו בוא נראה מה קורה, בוא ניתן לו את ה-new car color.
עכשיו בוא נגיד שאנחנו כבר יצאנו מפה, אנחנו עכשיו יצאנו מהפונקציה הזאת, נמצאים פה. עכשיו אני אכתוב, אני אנסה לזהות את המשתנה NewCarCaller שהגדרתי פה. אני רושם NewCarCaller ויש לי קו אדום מקווקו, קו אדום המקווקו הזה בסופו של דבר בהקשר הזה הוא אומר שהמשתנה הזה הוא לא קיים, אין משתנה כזה שנקרא NewCarCaller, המשתנה הזה היה קיים בין
הנקודה הזאתי בפונקציה לבין הנקודה הזאת בפונקציה, וכאשר יצאנו מפה גם המשתנה הזה נעלם כבר, הם לא קיימים יותר, אוקיי? וכשניסינו לקרוא למשתנה הזה, לעשות את אותו דבר פה, בוא נגיד שנעשה את אותו דבר פה, אני רואה שרשום לי פה, שימו לב, The name New Car Caller does not exist in the current context,
או בעברית פשוטה, המשתנה הזה שנקרא New Car Caller הוא לא קיים בהקשר הזה.