Struct — Go

Struct di Go Struct adalah cara Go mengelompokkan data terkait bersama-sama. Mirip dengan class di bahasa lain, tapi tanpa inheritance. Mendefinisikan Struct ty

Struct di Go

Struct adalah cara Go mengelompokkan data terkait bersama-sama. Mirip dengan class di bahasa lain, tapi tanpa inheritance.

Mendefinisikan Struct

type Person struct {
    Nama  string
    Umur  int
    Email string
}

Membuat Instance

// Cara 1: Field by name
p1 := Person{
    Nama:  "Budi",
    Umur:  25,
    Email: "[email protected]",
}

// Cara 2: Positional (tidak disarankan)
p2 := Person{"Sari", 30, "[email protected]"}

// Cara 3: Zero value lalu set
var p3 Person
p3.Nama = "Andi"
p3.Umur = 22

Mengakses Field

fmt.Println(p1.Nama)  // "Budi"
fmt.Println(p1.Umur)  // 25

// Update field
p1.Umur = 26

Struct sebagai Parameter

func cetakPerson(p Person) {
    fmt.Printf("%s (%d tahun)\n", p.Nama, p.Umur)
}

cetakPerson(p1) // "Budi (25 tahun)"

Nested Struct

type Alamat struct {
    Kota    string
    Provinsi string
}

type Karyawan struct {
    Nama   string
    Alamat Alamat
}

k := Karyawan{
    Nama: "Budi",
    Alamat: Alamat{Kota: "Jakarta", Provinsi: "DKI"},
}
fmt.Println(k.Alamat.Kota) // "Jakarta"

Yang akan kamu pelajari