|
|
|
|
|
by voidlogic
4721 days ago
|
|
Getters and setters that have no logic are pointless. In Go I would write: type Person struct {
Sanity int
}
func NewPerson() *Person {
return &Person{Sanity: 50}
}
This is good enough 90% of the time (and faster), but if I was writing a library package and I wanted to care about protecting with some logic and care about my export signature: type Person interface {
Sanity()
SetSanity(val int)
}
type person struct {
sanity int
}
func NewPerson() Person {
return &person{sanity: 50}
}
func (p *person) Sanity() {
return p.sanity
}
func (p *person) SetSanity(val int) {
if val > SOME_FOO1 && val < SOME_FOO2 {
p.sanity = val
}
}
|
|