Recent Comments
Link
Recent Posts
Today
Total
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
관리 메뉴

Study Memory Work

[Go Lang] 구조체 - 생성자 패턴 본문

Programing/Go

[Go Lang] 구조체 - 생성자 패턴

Hera Choi 2023. 3. 2. 16:26

구조체 생성자 패턴

인스턴스 선언과 동시에 값을 초기화 하는 것 ---> 생성자 패턴을 이용한 것임

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)

}