Menu
Coddy logo textTech

Sınıf Olarak Struct'lar

Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 6 / 107.

Go'daki struct'lar, diğer dillerdeki sınıflarla aynı amaca hizmet eder. İlgili verileri tek bir tür altında bir araya getirirler.

Birden fazla alan türüne sahip bir struct tanımlayın

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

Alan adlarını kullanarak bir örnek oluşturun

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

Alanlara erişme ve değiştirme

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

car.Price = 27000.00   // Bir alanı değiştirin
fmt.Println(car.Price) // 27000

Struct'lar başka struct'ları içerebilir

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

Struct'lar ilgili alanları bir araya getirir. Alanlara nokta operatörü ile erişirsiniz ve karmaşık veri modelleri oluşturmak için struct'ları diğer struct'ların içine yerleştirebilirsiniz.

challenge icon

Görev

Orta

Aşağıdaki alanlara sahip bir Profile yapısı (struct) tanımlayın:

  • Name — string
  • Email — string
  • Age — int
  • Role — string

Kopya kağıdı

Go'daki struct'lar, diğer dillerdeki sınıflara benzer şekilde, ilgili verileri tek bir tip altında bir araya getirir.

Birden fazla alan tipine sahip bir struct tanımlayın:

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

Alan adlarını kullanarak bir örnek (instance) oluşturun:

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

Nokta operatörünü kullanarak alanlara erişin ve bunları değiştirin:

fmt.Println(car.Brand) // Toyota
car.Price = 27000.00   // Bir alanı değiştirin

Struct'lar başka struct'ları içerebilir (iç içe -nested- struct'lar):

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

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler