מצביעים ל-Struct
חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 97 מתוך 109.
כשעובדים עם מבנים, אפשר ליצור אליהם מצביעים בדיוק כמו לסוגים אחרים. זה שימושי להעברה יעילה של מבנים גדולים.
הגדר מבנה Person וצור מצביע אליו:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// צור מצביע ל-struct
personPtr := &person
// גש לשדות באמצעות המצביע
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}הפלט מראה שאפשר לגשת לשדות דרך המצביע:
Alice
30אפשר גם לשנות שדות באמצעות המצביע:
personPtr.age = 31
fmt.Println(person.age) // מדפיס: 31אתגר
מתחיליםבאתגר הזה תתרגל עבודה עם מצביעים למבנים ב-Go. יש לך מבנה Person עם השדות name ו-age. המשימה שלך היא לעדכן את המידע של האדם באמצעות מצביע למבנה.
הקוד כבר יוצר מבנה Person ומצביע אליו. עליך לשנות את המידע של האדם דרך המצביע.
נסו בעצמכם
package main
import "fmt"
// מבנה Person עם השדות name ו-age
type Person struct {
name string
age int
}
func main() {
// צרו מבנה Person
person := Person{
name: "John",
age: 25,
}
// צרו מצביע למבנה Person
personPtr := &person
// הדפיסו את פרטי האדם המקוריים
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: השתמשו במצביע כדי לשנות את שם האדם ל-"Jane" ואת גילו ל-30
// רמז: אפשר לגשת לשדות המבנה דרך מצביע באמצעות סימון הנקודה
// הדפיסו את פרטי האדם המעודכנים
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואה – חלק 1אופרטורי השוואה – חלק 2אופרטור AND לוגיאופרטור OR לוגיאופרטור NOT לוגייסודות קדימות אופרטוריםסיכום – ביצוע השוואות7זרימת בקרה: לולאות
הסבר על לולאת `for`לולאת `for` – בסיסיתלולאת `for` – תנאי בלבדמילת המפתח `break`מילת המפתח `continue`לולאות מקוננותסיכום – חזרה על פעולות10טיפוסים מורכבים: מערכים
מבוא למערכיםהכרזה על מערכיםאתחול מערכיםגישה לאיברי מערךאורך מערך באמצעות `len`מעבר על מערכיםמערכים רב-ממדיים13טיפוסים מורכבים: Structs
הגדרת טיפוסים מותאמים אישיתיצירת מופעי Structגישה לשדות של Structמצביעים ל-Structאתחול StructStruct מוטמעיםStruct אנונימייםסיכום – מבני נתונים מותאמים אישית2משתנים וסוגי נתונים בסיסיים
מהו משתנההסקת טיפוס באמצעות `:=`מספרים שלמים (int)מספרים בנקודה צפהערכים בוליאנייםמחרוזותערכי אפסקבועיםמוסכמות לשמותסיכום – משתנים וטיפוסים8פונקציות
הבנת פונקציותהצהרה על פונקציהקריאה לפונקציותפרמטרים של פונקציההחזרת ערך יחידהחזרת מספר ערכיםערכי החזרה בעלי שםיסודות תחום ההשפעה של פונקציהסיכום - יצירת קוד לשימוש חוזר3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור חילוקאופרטור מודולואופרטור השמהאופרטורי השמה מורחבתהגדלה והקטנהסיכום – חישובים6זרימת בקרה: תנאים
פקודת `if`מילת המפתח `else`מילת המפתח `else if`הסתרת משתנים בתוך `if`אתחול משתניםפקודת `switch``switch` עם ביטויים`switch` ללא ביטוימילת המפתח `fallthrough`סיכום - קבלת החלטותתרגלו בעצמכם: קומפיילר Go אונליין