getter와 setter
private 필드에 getter와 setter를 제공하면 항상 유효한 값이 할당되게 할 수 있다.
func (t *Item) Name() string { return t.name } func (t *Item) SetName(n string) { if len(n) != 0 { t.name = n } } func (t *Item) Price() float64 { return t.price } func (t *Item) SetPrice(p float64) { if p > 0 { t.price = p } } func (t *Item) Quantity() int { return t.quantity } func (t *Item) SetQuantity(q int) { if q > 0 { t.quantity = q } }
▼ getter, setter 사용
shirt.SetPrice(30000)
shirt.SetQuantity(2)
fmt.Println("Name: ", shirt.Name())
fmt.Println("Price: ", shirt.Price())
fmt.Println("Quantity: ", shirt.Quantity())
Go 코드 컨벤션 getter와 setter 메서드명
getter 메서드명은 보통 필드명과 같은 이름으로 짓는다. getter 이름에는 Get을 넣을 필요가 없다. 만약 name이라는 필드가 있다면 name 필드의 getter는 Name()이다. GetName()이 아니다.
setter 메서드명은 보통 Set필드명으로 짓는다. setter 함수는 SetName(name string)처럼 Set으로 시작한다.