Go — Struct (Indonesia)
Hari ke 28 mencoba konsisten menulis, hari ini kita akan membahas struct di Go lang, lets go langsung saja
main.go
type Person struct {
Name string
Age int
Email string
}struct itu seperti class di java atau Python
Get Arif Dwi Prasetya’s stories in your inbox
Join Medium for free to get updates from this writer.
Membuat dan mengakses struct:
// cara 1 — sebut field-nya
p1 := Person{Name: "Budi", Age: 25, Email: "budi@gmail.com"}
// cara 2 — urutan field
p2 := Person{"Ani", 30, "ani@gmail.com"}
// cara 3 — var, isi belakangan
var p3 Person
p3.Name = "Citra"
p3.Age = 22
fmt.Println(p1.Name) // Budi
fmt.Println(p2.Age) // 30Struct bisa punya method:
type Rectangle struct {
Width float64
Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
rect := Rectangle{Width: 10, Height: 5}
fmt.Println(rect.Area()) // 50Pointer receiver — untuk mengubah nilai struct:
func (r *Rectangle) Scale(factor float64) {
r.Width *= factor // mengubah nilai aslinya
r.Height *= factor
}
rect.Scale(2)
fmt.Println(rect.Width) // 20Struct di dalam struct (embedding):
type Address struct {
City string
Country string
}
type Employee struct {
Name string
Age int
Address Address // nested struct
}
emp := Employee{
Name: "Budi",
Age: 25,
Address: Address{
City: "Jakarta",
Country: "Indonesia",
},
}
fmt.Println(emp.Address.City) // JakartaNote :
Di Go, kalau nama field atau method huruf besar berarti public, huruf kecil berarti private — sesederhana itu tanpa keyword tambahan.
Sekian artikel yg sederhana ini ye kan semoga bisa bermanfaat. Terima kasih
— Arif Dwi Prasetya










