>백엔드 개발 >Golang >Go에서 합리적인 기본값을 사용하여 구조체를 어떻게 초기화할 수 있나요?

Go에서 합리적인 기본값을 사용하여 구조체를 어떻게 초기화할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-26 15:04:09473검색

How Can I Initialize Structs with Sensible Default Values in Go?

Go의 생성자: 적절한 기본값에 대한 가이드

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.