Study Memory Work
[Go Lang] 구조체 - 생성자 패턴 본문
구조체 생성자 패턴
인스턴스 선언과 동시에 값을 초기화 하는 것 ---> 생성자 패턴을 이용한 것임
type account struct {
number string
balance float64
interest float64
}
func main() {
// 선언과 동시에 값 초기화
kim := account{number: "234-123", balance: 10000000, interest: 0.014}
fmt.Println(kim)
}
포인터형 구조체 생성자 패턴 만들기
포인터형의 구조체 인터페이스는 선언과 동시에 값 복사가 되지 않는다. 반드시 아래와 같은 형식을 취해줘야 함.
---> 생성자 패턴을 이용할 수 없는 것임.
var lee *account = new(account)
생성자 패턴 처럼 만드는 방법 :
- 값을 받아 포인터형으로 리턴하는 메소드를 새로 생성하여 사용한다. *많이 쓰이는 방식!
type account struct {
number string
balance float64
interest float64
}
// 구조체 인스턴스를 생성한 뒤 포이터를 리턴하는 메소드
func NewAccount(number string, balance float64, interest float64) *account {
return &account{number, balance, interest}
}
func main() {
// 만들어놓은 메소드를 이용해, 마치 인스턴스를 바로 생성하는 것 처럼 간편하게 포인터형 구조체로 생성할 수 있음
park := NewAccount("543-234", 20000000, 0.01)
fmt.Println(park)
}
'Programing > Go' 카테고리의 다른 글
[Go Lang] 인터페이스 (0) | 2023.03.02 |
---|---|
[Go Lang] 구조체 - 임베디드 패턴, 메소드 상속 활용, 오버라이딩 (0) | 2023.03.02 |
[Go Lang] 구조체 - 선언, 활용 (0) | 2023.03.02 |
[Go Lang] 사용자 정의 타입 (0) | 2023.02.28 |
[Go Lang] File IO : 파일 읽기 (0) | 2023.02.28 |