4
구조체가 작동하고 있습니다. 이제 구조체가 더 많은 구조체가 있습니다.이 경우에는 조각의 ID 값을 찾아야합니다. 마지막 구조에 요소의 이름 만 있습니다. 지금 내가하는 방법은 문자열이라는 이름을 찾을 때까지 유전자라는 조각의 각 요소를 읽는 것입니다. 내 문자열 이름을 찾는 더 나은 방법이 있습니까?GO : 구조체에서 요소를 검색하는 가장 좋은 방법
type GenresResponse struct {
Count int `xml:"count,attr"`
PageIndex int `xml:"page_index,attr"`
PageSize int `xml:"page_size,attr"`
NumOfResults int `xml:"num_of_results,attr"`
TotalPages int `xml:"total_pages,attr"`
Genes []Gene `xml:"gene"`
}
type Gene struct {
Category string `xml:"category,attr"`
Id string `xml:"id,attr"`
Translations Translations `xml:"translations"`
}
type Translations struct{
Translation Translation `xml:"translation"`
}
type Translation struct{
Lang string `xml:"lang,attr"`
Name string `xml:"name"`
}
그리고 이것은 내가 그것을 읽고 있어요 방법입니다
귀하의 코드가 잘 작동하고 내 지식 선형 검색을 할 수있는 "더 나은"방법이없는 것 같다idToFind := "0"
for _, genreItem := range responseStruct.Genes {
if strings.ToLower(genreItem.Translations.Translation.Name) == strings.ToLower(myNameValue){
idToFind = genreItem.Id
break
}
}
문제의 새로운 기능 : http://en.wikipedia.org/wiki/Binary_search_algorithm는
이동은, 특히 예는 매우 유용 할 수 정렬 및 이진 검색 처리 할 수있는 기본 패키지를 포함 너의 루프? (단 하나의 ToLower가 루프 전에 움직일 수 있다는 것을 제외하고는.) – Volker