더북(TheBook)

getter와 setter

private 필드에 gettersetter를 제공하면 항상 유효한 값이 할당되게 할 수 있다.


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 코드 컨벤션 gettersetter 메서드명

getter 메서드명은 보통 필드명과 같은 이름으로 짓는다. getter 이름에는 Get을 넣을 필요가 없다. 만약 name이라는 필드가 있다면 name 필드의 getterName()이다. GetName()이 아니다.

setter 메서드명은 보통 Set필드명으로 짓는다. setter 함수는 SetName(name string)처럼 Set으로 시작한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.