Menu
Coddy logo textTech

מבוא ל-OOP ב-Go

חלק מהיחידה תכנות מונחה עצמים במסלול ה-GO של Coddy. שיעור 5 מתוך 107.

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

הגדירו struct לאחסון נתונים

type Dog struct {
    Name string
    Age  int
}

צרפו מתודה למבנה

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

יוצרים מופע ומשתמשים בו

package main

import "fmt"

type Dog struct {
    Name string
    Age  int
}

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

func main() {
    myDog := Dog{Name: "Buddy", Age: 3}
    fmt.Println(myDog.Bark()) // פלט: Buddy says Woof!
    fmt.Println(myDog.Age)    // פלט: 3
}

ב-Go, החלק (d Dog) שמופיע לפני שם המתודה נקרא מקבל. הוא מחבר את המתודה למבנה Dog, בדומה לאופן שבו מתודות שייכות למחלקות בשפות אחרות.

challenge icon

אתגר

קל

צרו מבנה Cat כדי לתרגל את הגישה של Go ל-OOP:

  • הגדירו מבנה Cat עם שדות Name (מחרוזת) ו-Age (מספר שלם)
  • הוסיפו מתודה Speak שמחזירה את שם החתול ואחריו " says Meow!"

נסו בעצמכם

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Scan(&name, &age)

    cat := Cat{Name: name, Age: age}

    fmt.Printf("Name: %s\n", cat.Name)
    fmt.Printf("Age: %d\n", cat.Age)
    fmt.Println(cat.Speak())
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Go אונליין