הסתרת משתנים בתוך `if`
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 37 מתוך 109.
בואו נלמד על הצללת משתנים במשפטי if. כך אפשר ליצור משתנה שקיים רק בתוך בלוק ה־if והבלוקים הקשורים אליו של else.
ראשית, בואו ניצור משתנה מחוץ להוראה המותנית שלנו:
x := 10
fmt.Println("Original x value:", x)לאחר שנריץ את הקוד הזה, יהיה לנו משתנה x עם הערך 10, שבו נוכל להשתמש לאורך כל התוכנית שלנו.
כעת נשתמש בהצללת משתנים במשפט if כדי ליצור משתנה חדש שקיים רק בתוך הבלוק הזה:
if y := x * 2; y > 15 {
fmt.Println("y is greater than 15:", y)
// y קיים רק בבלוק הזה
} else {
fmt.Println("y is not greater than 15:", y)
// y זמין גם בבלוקים של else
}לאחר ביצוע הקוד הזה, Go תחשב את y כ־20 (שהוא x * 2), תבדוק אם הוא גדול מ־15, ואז תבצע את הבלוק הראשון. הפלט יוצג על המסך:
y is greater than 15: 20לבסוף, ננסה לגשת למשתנים שלנו אחרי פקודת if:
// fmt.Println(y) תגרום לשגיאה - y לא קיים כאן
fmt.Println("x is still:", x)לאחר ביצוע הקוד הזה, עדיין אפשר לגשת אל x, אבל y כבר אינו זמין כי הוא היה קיים רק בתוך הבלוקים if ו-else. הפלט יוצג על המסך:
x is still: 10הדוגמה הזו מראה כיצד הצללת משתנים פועלת במשפטי if — אפשר לגשת למשתנה y רק בתוך הבלוקים המותנים שבהם הוא הוכרז.
אתגר
מתחיליםבאתגר הזה תתרגל הצללה של משתנים בתוך משפט if. תראה כיצד משתנה שמוצהר בתוך בלוק if יכול להיות בעל שם זהה לזה של משתנה בטווח החיצוני, אך עם ערך שונה.
בקוד יש משתנה message בטווח החיצוני. המשימה שלך היא ליצור משתנה מוצלל בעל אותו שם בתוך בלוק if, ואז להדפיס את שני המשתנים כדי לראות את השפעת ההצללה.
נסו בעצמכם
package main
import "fmt"
func main() {
// משתנה בתחום החיצוני
message := "Hello from outer scope"
isLoggedIn := true
if isLoggedIn {
// TODO: צרו משתנה חדש בשם 'message' עם הערך "Hello from inner scope"
// פעולה זו מדפיסה את ההודעה מהתחום הפנימי
fmt.Println(message)
}
// פעולה זו מדפיסה את ההודעה מהתחום החיצוני
fmt.Println(message)
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטותתרגלו בעצמכם: קומפיילר Go אונליין