Structs and Methods in Go – Composition over Inheritance
What is a Struct?
A struct is a composite type that groups related fields together, similar to a class without inheritance.
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 25}
fmt.Println(p.Name) // Alice
Methods on Structs
func (p Person) Greet() string {
return "Hi, I'm " + p.Name
}
fmt.Println(p.Greet())
Composition over Inheritance
Go doesn't support classical inheritance. Instead, it favors composition — embedding one struct inside another to reuse behavior.
type Employee struct {
Person // embedded struct
Salary int
}
e := Employee{Person: Person{Name: "Bob", Age: 30}, Salary: 50000}
fmt.Println(e.Greet()) // inherited via composition
PreviousHow to Use Maps in Go – Best Practices for Key-Value Data
Next Mastering Interfaces in Go – Polymorphism with Real Examples
Ready to master real-world Go skills?
Learn Go hands-on with mentor-led, live sessions.
.png)