Всем привет!
Основное время программирую на PHP, сейчас изучаю go.
В PHP нормальной практикой считается делать поля приватными, и создавать для них нужные сеттеры и геттеры.
Интересует насколько это распространено в go и как это реализуется обычно?
Смотря на существующие библиотеки и обучающие материалы, поля в структурах оставляют публичными.
Как бы я сделал:
package domain
import "fmt"
type Customer struct {
firstName string
lastName string
phone string
}
func NewCustomer(firstName string, lastName string) *Customer {
return &Customer{firstName: firstName, lastName: lastName}
}
func (c *Customer) SetPhone(phone string) {
c.phone = phone
}
func (c Customer) Phone() string {
return c.phone
}
func (c Customer) FullName() string {
return fmt.Sprintf("%s %s", c.lastName, c.firstName)
}
Имеет ли право на жизнь код выше?