Go에서 불변 구조 사용
Go에서는 초기화 후 필드 수정을 방지하는 불변 구조가 필요할 수 있습니다. . 이는 특정 시나리오에서 데이터 무결성과 보안을 강화할 수 있습니다.
Go에서 구조체의 불변성을 달성하려면 해당 멤버를 내보내지 않도록 만들고 해당 값에 액세스하기 위한 읽기 전용 기능을 제공하는 기술을 사용할 수 있습니다. 이를 구현하는 방법은 다음과 같습니다.
package mypackage type myImmutable struct { value int } func (s myImmutable) Value() int { return s.value }
이 예에서 myImmutable 구조체에는 내보내지 않은 필드 값이 있습니다. 패키지 외부의 필드 값에 액세스하기 위해 getter 함수 Value()를 제공합니다.
구조체 초기화는 새 인스턴스를 생성하고 값을 설정하는 생성자 함수를 사용하여 수행할 수 있습니다.
func NewMyImmutable(value int) myImmutable { return myImmutable{value: value} }
불변 구조체의 사용법은 다음과 같습니다:
myImmutable := mypackage.NewMyImmutable(3) fmt.Println(myImmutable.Value()) // Prints 3
구조체 필드에 액세스하기 위해 getter를 사용하면 패키지 외부에서 해당 필드를 수정하려고 하면 컴파일러 오류가 발생합니다. 이 접근 방식은 효과적으로 구조체를 변경할 수 없게 만듭니다.
위 내용은 Go에서 불변 구조를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!