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

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

Barbara Streisand
풀어 주다: 2024-11-16 08:24:03
원래의
481명이 탐색했습니다.

How Can You Create Immutable Structures in Go?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿