מה הם מבנים בגולנג

Mh Hm Mbnym Bgwlng



בשפת Go, מבנה הוא אוסף של משתנים (שדות) המקובצים תחת שם יחיד. זהו סוג נתונים מורכב המאפשר לנו ליצור מבני נתונים מותאמים אישית כדי להחזיק מידע קשור. מבנים ב-Go הם כמו מחלקות בתכנות מונחה עצמים כמו C, ו-C++, אבל הם לא תומכים בירושה. במקום זאת, הם מסתמכים על הרכב כדי להשיג שימוש חוזר בקוד. מאמר זה מכסה את המבנים בגולנג וכיצד אנו יכולים להכריז ולגשת לחברי המבנה.

מהו מבנה בגולנג

בגולנג, מבנה הוא סוג נתונים מורכב המורכב מאפס או יותר שדות בעלי שם, שלכל אחד מהם יש סוג מסוים. השדות של מבנה יכולים להיות מכל סוג, כולל מבנים, מערכים, פונקציות או ממשקים אחרים.







הנה דוגמה למבנה בגולנג:



סוּג מבנה אדם {
מחרוזת שם מלא
Int
כתובת מיקום
}
סוּג מבנה כתובת {
StreetName  מחרוזת
שם עיר    מחרוזת
מחרוזת שם מדינה
}


כאן הגדרנו מבנה אדם בעל שלושה שדות: שם מלא, שנים ומיקום. השדה Location הוא עצמו מבנה הכולל שלושה שדות: StreetName, CityName ו-CountryName.



איך להכריז על מבנה בגולנג

אנו יכולים להכריז על מבנה בגולנג באמצעות ה סוּג מילת מפתח. שם המבנה מוגדר אחרי ה- סוּג מילת מפתח, והשדות שלה מוקפים בסוגריים מסולסלים { } . להלן התחביר להכרזה על מבנה ב-Go:





סוּג מבנה StructName {
FieldName1 FieldType1
FieldName2 FieldType2
...
}


להלן דוגמה כיצד להכריז על מבנה בשם Person עם שני שדות שם וגיל של סוגים string ו-int בהתאמה:

סוּג מבנה אדם {
מחרוזת שם
גיל int
}


בקוד לעיל, השתמשנו ב- סוּג מילת מפתח כדי להכריז על מבנה חדש בשם אדם עם שני שדות שֵׁם מסוג מחרוזת ו גיל מסוג int. השדות מופרדים על ידי א שורה חדשה אופי אלא א נקודה-פסיק (;) יכול לשמש גם להפרדה ביניהם.



כיצד לגשת לחבר מבנה בגולאנג

כדי לגשת לשדות של מופע struct בשפת Go נקודה ('.') נעשה שימוש במפעיל. לאחר אופרטור נקודה זה מופיע שם שדה. הנה דוגמה כיצד לגשת לשדות השם והגיל של מופע של מבנה אדם:

// ליצור חדש ` אדם ` מבנה מופע עם שם 'קש' וגיל 24
kash := אדם { שֵׁם: 'קש' , גיל: 24 }

// גש לשדות של ` קאש ` מופע struct
fmt.Println ( kash.name ) // תְפוּקָה: 'קש'
fmt.Println ( kash.age ) // תְפוּקָה: 24


בקוד לעיל, יצרנו מופע חדש של מבנה Person בשם kash עם השם קאש וגיל 24 . לאחר מכן אנו ניגשים לשדות השם והגיל של מופע kash struct באמצעות ה- ('.') מפעיל ולהדפיס אותם למסוף.

חשוב לציין שהגישה לשדות של מופע struct מתבצעת באמצעות סימון נקודות ולא באמצעות חֵץ סימון (->) בשימוש בשפות תכנות אחרות. סימון הנקודות משמש באופן עקבי ברחבי Go לגישה לשדות של מבנים, כמו גם למאפיינים ושיטות מסוגים אחרים.

קוד דוגמה להכרזה וגישה לחבר המבנה בגולאנג

להלן דוגמה מלאה להכרזה על מבנה האדם ב-Go והדפסת ערכיו למסך:

החבילה הראשית
יְבוּא 'fmt'
סוּג מבנה אדם {
מחרוזת שם
גיל int
}
func main ( ) {
// ליצור חדש ` אדם ` מבנה מופע עם שם 'קש' וגיל 24
kash := אדם { שֵׁם: 'קש' , גיל: 24 }
// הדפס את ` שֵׁם ` ו ` גיל ` שֶׁל ` קאש ` מבנה מופע לקונסולה
fmt.Printf ( 'שם: %s \n ' , kash.name )
fmt.Printf ( 'גיל: %d \n ' , kash.age )
}


בקוד הכתוב לעיל, הכרזנו תחילה על אדם struct. מבנה זה מכיל שני שדות שהם שם וגיל. לאחר מכן, יצרנו מופע חדש של מבנה Person בשם kash עם השם קאש וגיל 24 .

כדי להציג שדות שם וגיל, אנו משתמשים ב- fmt.Printf לתפקד עם ה %s ו %d מפרטי פורמט כדי להדפיס את שדות השם והגיל, בהתאמה.

לאחר ההפעלה, הקוד הבא בפלט מופיע במסוף:

כיצד להעביר מבנה כטענות פונקציה

כדי להעביר struct כארגומנט פונקציה ב-Go, עלינו פשוט לציין את סוג ה-struct כסוג הפרמטר בחתימת הפונקציה, ולאחר מכן להעביר את מופע ה-struct כארגומנט בעת קריאה לפונקציה.

קוד לדוגמה

הדוגמה שלהלן מראה כיצד להעביר מופע של מבנה Person כארגומנט לפונקציה בשפת Go ולהדפיס את ערכיה למסך:

החבילה הראשית
יְבוּא 'fmt'
// הכריז על מבנה בשם ` אדם ` עם שני שדות: ` שֵׁם ` ו ` גיל `
סוּג מבנה אדם {
מחרוזת שם
גיל int
}
// להצהיר על א פוּנקצִיָה בשם ` printPerson ` זה לוקח א ` אדם ` מבנה כפי ש ויכוח
func printPerson ( p אדם ) {
fmt.Printf ( 'שם: %s \n ' , p.name )
fmt.Printf ( 'גיל: %d \n ' , עמוד )
}
func main ( ) {
// ליצור חדש ` אדם ` מבנה מופע עם שם 'קש' וגיל 24
kash := אדם { שֵׁם: 'קש' , גיל: 24 }
// תעביר את ה ` קאש ` מבנה מופע ל- ` printPerson ` פוּנקצִיָה
printPerson ( קאש )
}


בקוד לעיל, הכרזנו תחילה על מבנה האדם עם שני שדות, שֵׁם, ו גיל . לאחר מכן אנו מכריזים על פונקציה בשם printPerson שלוקח מבנה Person כארגומנט ומדפיס את שדות השם והגיל שלו למסך באמצעות הפונקציה fmt.Printf.

בפונקציה הראשית, יצרנו מופע חדש של מבנה Person בשם kash עם השם קאש וגיל 24. לאחר מכן אנו מעבירים את מופע kash struct לפונקציה printPerson על ידי קריאה לפונקציה printPerson והעברת קאש בתור הטיעון.

ניתן לראות את הפלט הבא בקונסולה לאחר הפעלת הקוד לעיל:

סיכום

בגולנג, מבנים יכולים לייצג סוגי נתונים מורכבים ולכלול נתונים קשורים. מבנה הוא סוג נתונים המורכב משדה אחד או יותר, שלכל אחד מהם ניתן שם וסוג ספציפיים. השדות של מבנה יכולים להיות מכל סוג, כולל מבנים, מערכים, פונקציות או ממשקים אחרים. מאמר זה דן בפירוט במבני Go, למידע נוסף על הכרזה וגישה לרכיבי ה-struct קרא את המאמר.