Go의 빈 구조체 이해: struct{} 및 struct{}{}
Go에서 struct 키워드는 구조화된 데이터를 정의합니다. 명명된 요소로 구성된 유형입니다. 그러나 관용적인 Go 코드에서 자주 발견되는 struct{} 및 struct{}{}는 특별한 주의를 기울일 가치가 있습니다.
struct{}: 빈 구조체
구조체 {}는 요소가 없는 빈 구조체를 나타내는 특별한 경우입니다. 크기가 0이라는 고유한 속성이 있습니다. 즉, 이 유형의 값에 메모리가 할당되지 않음을 의미합니다.
복합 리터럴로서의 struct{}{}
대조적으로, int{5} 또는 []string{"Go", "Python"}과 유사하게 작성된 struct{}{}는 값을 명시적으로 구성하는 복합 리터럴입니다. 구조체{} 유형입니다. 구조체{}에는 정의된 요소가 없으므로 이 리터럴에는 필드가 없습니다.
빈 구조체의 애플리케이션
빈 구조체는 Go 코드에서 다양한 용도를 찾을 수 있습니다.
예: 빈 항목을 사용하여 세트 생성 구조체
다음은 집합을 생성하기 위해 빈 구조체 값 유형이 있는 맵을 사용하는 예입니다.
package main import "fmt" type Set map[string]struct{} func main() { s := make(Set) s["red"] = struct{}{} s["blue"] = struct{}{} fmt.Println(s) // Prints: map[blue:{} red:{}] }
이 접근 방식은 키의 존재만 확인하는 것이지, 키의 존재만 확인하지 않는다는 점에 유의하세요. 연관된 값입니다.
위 내용은 Go에서 빈 구조체(`struct{}` 및 `struct{}{}`)의 용도와 속성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!