Menu
Coddy logo textTech

Structs כמחלקות

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

מבנים ב-Go משמשים לאותה מטרה כמו מחלקות בשפות אחרות. הם מאגדים נתונים קשורים יחד לסוג יחיד.

הגדירו struct עם כמה סוגי שדות

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

צור מופע באמצעות שמות שדות

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

גישה לשדות ושינוי שלהם

fmt.Println(car.Brand) // Toyota
fmt.Println(car.Year)  // 2023

car.Price = 27000.00   // שנה שדה
fmt.Println(car.Price) // 27000

מבנים יכולים להכיל מבנים אחרים

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

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

challenge icon

אתגר

בינוני

הגדירו מבנה Profile עם השדות הבאים:

  • Name: מחרוזת
  • Email: מחרוזת
  • Age: int
  • Role: מחרוזת

נסו בעצמכם

package main

import "fmt"

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

    p := Profile{
        Name:  name,
        Email: email,
        Age:   age,
        Role:  role,
    }

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

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

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

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