בדיקת קיומו של מפתח
שיעור 20 מתוך 21 בקורס פרוסות ומפות ב-GoLang של Coddy.
עד לנקודה זו למדנו איך להוסיף ערכים למפות ולמחוק אותן. בשיעור הזה נלמד איך לבדוק אם מפה מכילה מפתח מסוים. אפשר לעשות זאת באמצעות התנאי if, כפי שמוצג בדוגמה הבאה:
var books = map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
}
if v, k := books["Python"]; k{
fmt.Println(v)
}בדוגמה הזו יש לנו מפה שנקראת books. באמצעות if, אנחנו בודקים אם המפה מכילה את המפתח "Python". אם כן, אנחנו מדפיסים את הערך המשויך אליו. בדוגמה שלנו, התוצאה תהיה 2.
ה-k ב-<strong>books["Python"]; k{</strong> מכיל ערך בוליאני, true או false. אם המפתח קיים, הוא יחזיר true, ואפשר לבדוק זאת על ידי הדפסתו למסך:
if v, k := books["Python"]; k{
fmt.Println(k,v)
}הפלט יהיה:
true 1ל-Go יש גרסה פשוטה יותר של זה, שאפשר לכתוב כך:
v, k := books ["a"]
fmt.Println(v, k)הפעולה תחזיר את הערך v ואת k כערך בוליאני true (אם המפתח קיים) או false (אם המפתח לא קיים):
0 false
במקרה שלנו, a לא נמצאת במפה, ולכן מוחזרים 0 ו-false.
אתגר
קלכתבו תוכנית שמקבלת מהמשתמש קלט כמפתח ובודקת אם המפתח הזה קיים במפה הנתונה:
- אם הוא קיים, הדפיסו את ההודעה
<strong>"{key} exists with a value of {value}"</strong>.
{key} הוא המפתח שהוזן על ידי המשתמש, ו-{value} הוא הערך המתאים במפה. - אם הוא לא קיים, הדפיסו
<strong>"{key} does not exist in the map"</strong>.
נסו בעצמכם
package main
import "fmt"
func main() {
// קלטו מהמשתמש ערך שישמש כמפתח. אין לשנות את זה!
var key string
fmt.Scanln(&key)
// מפת הספרים. אין לשנות את זה!
books := map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
"Lua": 4,
"Java": 5,
}
// בדקו אם המפתח קיים במפה
}כל השיעורים ביחידה פרוסות ומפות ב-GoLang
1מבוא
מבוא3מה מסתתר מאחורי ה-Slice
Slice הוא מערךיצירת Slice באמצעות makeהעתקת Sliceמחיקת איבראתגר סיכום #1אתגר סיכום #2תרגלו בעצמכם: קומפיילר Go אונליין