Go 구조체 리터럴의 부울 포인터에 True 할당
Go 프로그래머는 구조체 리터럴 내에서 부울 포인터를 true로 설정해야 하는 상황에 자주 직면합니다. . 이 문서에서는 새 식별자를 정의하지 않고 이 목표를 달성하기 위해 사용할 수 있는 옵션에 대해 자세히 설명합니다.
제공된 코드 조각은 부울 포인터를 사용하는 함수를 보여주며 is 필드를 허용하는 구문이 존재하는지 여부에 대한 질문을 촉발합니다. 구조체 리터럴 자체에서 true로 설정됩니다.
설정 접근 방식 사실:
1. 배열 인덱싱(최적 아님):
h := handler{is: &[]bool{true}[0]}
이 방법에는 true로 설정된 단일 bool을 사용하여 배열을 생성하고, 이를 인덱싱하고, 인덱싱된 요소의 주소를 할당하는 작업이 포함됩니다. 추가 변수가 필요하지 않지만 상용구와 메모리 소모가 단점이다.
2. 포인터 반환을 포함하는 도우미 함수:
func newTrue() *bool { b := true return &b }
이 접근 방식은 실제 부울 변수의 주소를 반환하는 도우미 함수를 도입합니다. 다음과 같이 사용됩니다.
h := handler{is: newTrue()}
더 깔끔하고 사용자 정의 가능한 솔루션을 제공합니다.
3. 클로저가 있는 익명 함수:
h := handler{is: func() *bool { b := true; return &b }()}
익명 함수 기술은 클로저를 사용하여 원하는 기능을 제공합니다.
4. 클로저가 있는 기능적 옵션:
h := handler{is: func(b bool) *bool { return &b }(true)}
이 옵션은 bool 값이 인수로 전달되는 기능적 프로그래밍 접근 방식을 제공합니다.
최적의 솔루션:
대부분의 시나리오에 가장 최적의 솔루션은 newTrue()와 같은 도우미 함수를 사용하는 것입니다. 구조체 리터럴에서 부울 포인터를 true로 설정하는 간결하고 재사용 가능한 방법입니다.
위 내용은 추가 변수를 정의하지 않고 Go 구조체 리터럴의 `bool` 포인터에 `true`를 할당하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!