golang의 일반 변수에 대한 싱글톤을 구현하는 가장 최악의 방법을 찾으려고 노력 중입니다. 전역 변수와 함께 일반 sync.once
패턴을 사용하면 일반 유형 정보(아래)를 사용할 수 없기 때문에 작동하지 않습니다.
이 예제는 조작된 것이지만 실제로는 싱글톤을 유지하는 코드가 t
를 정의하는 클라이언트 코드(예: 라이브러리에서)와 분리될 수 있습니다.
t의 정확한 값을 알 수 없는 다음 라이브러리 코드를 가정해 보겠습니다.
으아아아그리고 t
被定义为 string
가 문자열
로 정의된 다음과 같은 별도의 클라이언트 코드를 가정합니다.
이를 달성하는 가장 좋은 방법은 무엇입니까?
저는 결국 atomic.pointer
API를 사용하여 이 문제를 해결하고 관심 있는 다른 사람들을 위한 간단한 라이브러리인 One-liner에 통합했습니다. 싱글렛을 사용하여 원본 게시물을 재작업하는 방법은 다음과 같습니다.
샘플 라이브러리 코드:
으아아아클라이언트 코드:
으아아아이 기능을 지원하는 singlet 라이브러리 코드는 다음과 같습니다.
으아아아이 상황에 처한 다른 사람들에게 도움이 되기를 바랍니다.
위 내용은 Go 제네릭을 사용한 싱글톤 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!