>백엔드 개발 >Golang >Go에서 불변 구조체를 어떻게 만들 수 있나요?

Go에서 불변 구조체를 어떻게 만들 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-12 13:34:02846검색

How can I create immutable structs in Go?

Go에서 불변 구조체 생성

Go에서는 일단 초기화되면 값을 읽는 데에만 사용할 수 있는 불변 구조체를 생성하는 것이 가능합니다. 수정하는 것보다. 수행 방법은 다음과 같습니다.

멤버를 비공개로 설정

일반적으로 구조체의 필드는 내보내지며 패키지 외부에서 액세스할 수 있습니다. 불변 구조체를 생성하려면 필드 이름 시작 부분에 소문자를 사용하여 해당 필드를 내보내지 않도록 설정하세요. 이렇게 하면 필드에 대한 외부 액세스가 방지됩니다.

리더 메서드 제공

필드 값에 대한 액세스를 활성화하려면 접두사 "Value()" 또는 설명적인 이름. 이러한 메서드는 구조체를 수정하지 않고 값을 검색합니다.

다음은 불변 구조체 생성을 보여주는 예제 코드 조각입니다.

package example

type ImmutableStruct struct {
    value int
}

func (s ImmutableStruct) GetValue() int {
    return s.value
}

func NewImmutableStruct(value int) ImmutableStruct {
    return ImmutableStruct{value: value}
}

사용법

이 불변 구조체는 다음과 같이 사용할 수 있습니다.

myStruct := example.NewImmutableStruct(3)
fmt.Println(myStruct.GetValue())  // Prints 3

이 예에서 myStruct 변수는 불변이며 직접 수정할 수 없습니다. GetValue() 메서드를 통해 값을 검색하는 데만 사용할 수 있습니다.

구조체를 변경할 수 없게 만들면 Go 애플리케이션의 보안과 무결성을 강화하여 민감하거나 중요한 데이터가 의도하지 않은 수정으로부터 보호되도록 할 수 있습니다. .

위 내용은 Go에서 불변 구조체를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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