슬라이스 초기화 중 Nil 맵 항목에 할당 오류 발생
이 런타임 오류는 슬라이스 내의 nil 맵 항목에 할당할 때 발생합니다. 제공된 코드에서 오류는 지도 조각을 생성하려는 시도에서 발생합니다.
이 문제를 해결하려면 접근 방식을 다음과 같이 수정해야 합니다.
<code class="go">type Investor struct { Id string Name string } var invs []Investor for _, row := range rows { var inv_ids []string var inv_names []string // Create arrays of data from MySQL GROUP_CONCAT function inv_ids = strings.Split(row.Str(10), ",") inv_names = strings.Split(row.Str(11), ",") // Build slice of investors for i := 0; i < len(inv_ids); i++ { invs = append(invs, Investor{inv_ids[i], inv_names[i]}) } }</code>
여기서 정의합니다. 각 맵 항목을 나타내는 사용자 정의 Investor 구조체. 그런 다음 invs를 Investor 구조체의 조각으로 초기화하고 루프 내에 채웁니다. 이 접근 방식은 nil 맵의 사용을 피하고 값의 적절한 할당을 보장합니다.
제공된 답변에 제시된 대체 옵션은 복합 리터럴을 사용하여 슬라이스 내에서 직접 맵을 초기화하는 것입니다. 이는 다음과 같이 달성할 수 있습니다:
<code class="go">var invs []map[string]string for _, row := range rows { var inv_ids []string var inv_names []string // Create arrays of data from MySQL GROUP_CONCAT function inv_ids = strings.Split(row.Str(10), ",") inv_names = strings.Split(row.Str(11), ",") // Build slice of maps for i := 0; i < len(inv_ids); i++ { invs = append(invs, map[string]string{"Id": inv_ids[i], "Investor": inv_names[i]}) } }</code>
위 내용은 Go에서 슬라이스 초기화 중 'Nil Map 오류의 항목 할당'을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!