>백엔드 개발 >Golang >Go 제네릭을 사용한 싱글톤 패턴

Go 제네릭을 사용한 싱글톤 패턴

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB앞으로
2024-02-05 22:54:07872검색

带有 Go 泛型的单例模式

질문 내용

golang의 일반 변수에 대한 싱글톤을 구현하는 가장 최악의 방법을 찾으려고 노력 중입니다. 전역 변수와 함께 일반 sync.once 패턴을 사용하면 일반 유형 정보(아래)를 사용할 수 없기 때문에 작동하지 않습니다.

이 예제는 조작된 것이지만 실제로는 싱글톤을 유지하는 코드가 t를 정의하는 클라이언트 코드(예: 라이브러리에서)와 분리될 수 있습니다.

t의 정확한 값을 알 수 없는 다음 라이브러리 코드를 가정해 보겠습니다.

으아아아

그리고 t 被定义为 string문자열로 정의된 다음과 같은 별도의 클라이언트 코드를 가정합니다.

으아아아

이를 달성하는 가장 좋은 방법은 무엇입니까?


정답


저는 결국 atomic.pointer API를 사용하여 이 문제를 해결하고 관심 있는 다른 사람들을 위한 간단한 라이브러리인 One-liner에 통합했습니다. 싱글렛을 사용하여 원본 게시물을 재작업하는 방법은 다음과 같습니다.

샘플 라이브러리 코드:

으아아아

클라이언트 코드:

으아아아

이 기능을 지원하는 singlet 라이브러리 코드는 다음과 같습니다.

으아아아

이 상황에 처한 다른 사람들에게 도움이 되기를 바랍니다.

위 내용은 Go 제네릭을 사용한 싱글톤 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제