Go에서 불변 구조체 만들기
불변 구조체는 일단 초기화되면 수정 가능성 없이 해당 필드에 대한 읽기 작업만 허용합니다. Go에서 이를 달성하려면 다른 언어와는 약간 다른 접근 방식이 필요합니다.
해결책
Go에서 불변 구조체를 생성하려면:
예제 코드
package mypackage type ImmutableStruct struct { value int } func (s ImmutableStruct) Value() int { return s.value } func NewImmutableStruct(value int) ImmutableStruct { return ImmutableStruct{value: value} }
사용
myImmutableStruct := mypackage.NewImmutableStruct(3) fmt.Println(myImmutableStruct.Value()) // Prints 3
이 예에서 ImmutableStruct에는 내보내지 않은 필드와 판독기 함수(Value())를 사용하여 값 필드에 액세스합니다. 일단 초기화되면 mypackage 패키지 외부에서 수정할 수 없습니다.
이 기술은 구조체의 유연성과 Go 패키지의 모듈성을 유지하면서 불변성을 보장합니다.
위 내용은 Go에서 불변 구조체를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!