Q: 인터페이스{}를 맵으로 변환 및 반복
구조체, 구조체 조각, 문자열 매핑 등 다양한 데이터 구조를 수용할 수 있는 일반 함수를 만들려는 시도 키와 구조체 값을 사용하여 맵을 반복하려고 할 때 오류가 발생합니다. 인터페이스를 살펴보면 실제로는 맵이라는 것을 알 수 있지만 범위 반복을 통해 해당 요소에 액세스하면 오류가 발생합니다.
A: 유형 스위치 또는 Value.MapKeys 사용
이 문제를 해결하는 방법에는 두 가지가 있습니다.
유형 스위치:
의 경우 예:
switch in := in.(type) { case map[string]*Book: for key, value := range in { fmt.Printf("Key: %s, Value: %v\n", key, value) } default: // Handle other cases as needed. }
Value.MapKeys:
예:
v := reflect.ValueOf(in) keys := v.MapKeys() for _, key := range keys { value := v.MapIndex(key) fmt.Printf("Key: %v, Value: %v\n", key.Interface(), value.Interface()) }
위 내용은 인터페이스에서 반영된 지도를 반복하는 방법{}?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!