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"