מה זה מחלקה ואובייקט בגולנג?

Mh Zh Mhlqh W Wbyyqt Bgwlng



רעיונות בסיסיים בתכנות מחשבים כמו מעמד ו לְהִתְנַגֵד לספק מבנה לקיבוץ קוד לתוך מודולים הניתנים לשימוש חוזר וניתנים להתאמה. גולנג יש תחביר, תכונות ופילוסופיה ייחודיים משלו. בניגוד לשפות אחרות, הפתרון אינו מובן מאליו כשמדובר במושגים של מעמד ו לְהִתְנַגֵד ב ללכת . במאמר זה, נבדוק האם ל-Go יש מושג של מעמד ו לְהִתְנַגֵד וכיצד זה בהשוואה לשפות תכנות אחרות.

מה זה מחלקה ואובייקט?

לפני שנוכל לענות אם ללכת יש ל שיעורים ו חפצים , ראשית עלינו להגדיר מה הם בהקשר של תכנות. א מעמד הוא מודל או תבנית המתארים את המאפיינים והפעולות של אוסף של חפצים . א לְהִתְנַגֵד נוצר כמופע של א מעמד כאשר הזיכרון מוקצה ומצבו מאותחל בזמן ריצה. שיעורים ו חפצים הם אבני בניין מפתח בשפות תכנות קלאסיות מונחה עצמים כמו Java, C++ או C# התומכות בפולימורפיזם, תורשה ואנקפסולציה.

מבנים בגולנג

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







ממשקים בגולנג

ללכת יש מושג שהוא כמו חפצים : ממשקים . א מִמְשָׁק הוא אוסף של שיטות המתארות התנהגות או פונקציונליות, אך מבלי לציין כיצד היא מיושמת. ממשקים לספק דרך להשיג פולימורפיזם ב ללכת , המאפשר להשתמש בסוגים שונים לסירוגין אם הם עומדים בדרישות הממשק. זהו מושג רב עוצמה המאפשר ללכת להשיג רמה גבוהה של גמישות והרחבה מבלי לוותר על ביצועים או פשטות.



שימוש במבנים וממשקים בגולנג

הדוגמה הבאה ממחישה את השימוש ב struct ו ממשקים ב ללכת .



החבילה הראשית
יְבוּא 'fmt'

סוג אדם struct {
מחרוזת שם
}

סוג Worker struct {
בן אנוש
מחרוזת עבודה
}

func ( ח אדם ) מידע ( ) {
fmt. Printf ( 'אני %s \n ' , ח. שֵׁם )
}

func ( w עובד ) מידע ( ) {
fmt. Printf ( 'אני %s. אני %s. \n ' , ב. שֵׁם , ב. עבודה )
}

הקלד ממשק אדם {
מידע ( )
}
funcmain ( ) {
ג'ון := עוֹבֵד { בן אנוש { 'ג'ון' } , 'עוֹבֵד' }
צְבִיָה := בן אנוש { 'צְבִיָה' }

ג'ון. מידע ( )
צְבִיָה. מידע ( )

היה באופן אישי

אני = ג'ון
אני. מידע ( )

אני = צְבִיָה
אני. מידע ( )
}

יצרנו שניים מבנים , בן אנוש ו עוֹבֵד , בקוד למעלה. לאחר מכן נוצרות הפונקציות שמדפיסות את ההודעות. ה מבנים נקראים ב רָאשִׁי () הפונקציה של אדם מִמְשָׁק . אנו יכולים לראות כי מידע השיטה יושמה על ידי שני ה עוֹבֵד וה בן אנוש , לכן המשתנה i עם הסוג אדם הממשק יפעל כהלכה וידפיס את הפלט.





תְפוּקָה



ללכת בעל גישה ייחודית ל כימוס . כימוס מתבצע בתכנות מונחה עצמים קונבנציונלי על ידי הפיכת שדות לפרטיים והפיכתם לנגישים באמצעות שיטות getter ו-seter. ב ללכת , כימוס מושגת באמצעות שמות שדות באותיות קטנות, אשר גלויים רק בתוך אותה חבילה. אסטרטגיה זו פשוטה וחד משמעית יותר, מה שמקל על ההבנה כיצד הקוד מתנהג ומוריד את האפשרות לתופעות לוואי בלתי צפויות.

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

סיכום

ללכת אין שיעורים אוֹ חפצים במובן הקלאסי; במקום זאת, הוא משתמש מבנים ו ממשקים , המציעים פונקציונליות דומה בצורה פשוטה וקלת משקל יותר. ללכת צברה פופולריות בקרב מפתחים שמתעדפים פשטות, קריאה וביצועים על ידי אימוץ פילוסופיה ודקדוק שונים. למרות היכרות עם לך המתודולוגיה עשויה להימשך זמן מה, המאפיינים והעיצוב הייחודיים שלה מביאים לקוד יעיל יותר וניתן לתחזוקה.