Go에서 구조체로 작업할 때 적절한 기본값으로 초기화하는 것은 적절한 기능을 보장하는 데 중요할 수 있습니다. Go에는 기존 생성자가 부족하지만 이 목표를 달성하기 위해 사용할 수 있는 여러 가지 방법이 있습니다.
Init 메서드
init 메서드는 패키지 수준에서 정의되지만, 패키지 내의 구조체에 대한 초기화 작업을 수행하는 데 활용될 수 있습니다. 그러나 구조체에 직접 연결되지 않으며 구조체 생성 시 호출되지 않습니다.
새 함수
Go에서 일반적인 관행은 다음과 같은 새 함수를 정의하는 것입니다. 초기화된 포인터를 구조체에 반환합니다. 이러한 함수를 사용하면 구조체 초기화 중에 기본값을 할당할 수 있습니다.
func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Sensible default value return p }
축소된 새 함수
간단한 구조체의 경우 New 함수의 축약된 버전을 사용할 수 있습니다. 사용, 초기화된 구조체를 직접 반환:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Make 함수
Make 함수는 New 함수와 유사하지만 포인터가 아닌 값으로 구조체를 반환합니다. 이는 구조체에 대한 포인터가 필요하지 않을 때 유용합니다.
func makeThing(name string) Thing { return Thing{name, 33} }
참조
new를 사용한 할당에 대한 자세한 내용은 효과적인 Go를 참조하세요. 문서: https://go.dev/doc/ Effective_go#allocation
위 내용은 Go에서 합리적인 기본값을 사용하여 구조체를 어떻게 초기화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!