type DateData struct { Count int Districts map[string]int}这是我遇到问题的结构。var dates = make(map[string]DateData)这就是我初始化和使用所述结构的方式为什么我会收到错误 panic: assignment to entry in nil map当我尝试为地区地图分配一个值时,如下所示:日期[“1/1/06”。。选区 [“1”] = 1 我无法为“选区”字段赋值以下是上下文的完整代码:package mainimport ( "encoding/csv" "fmt" "io" "log" "os" "strings")type Report struct { Date string `json:"date"` Address string `json:"address"` District string `json:"district"` Beat string `json:"beat"` Grid string `json:"grid"` Crimedesc string `json:"crimedesc"` UCRCode string `json:"ucr_ncic_code"` Lat string `json:"latitude"` Lon string `json:"longitude"`}type DateData struct { Count int Districts map[string]int}func main() { reports := CreateReport() var dates = make(map[string]DateData) for _, report := range reports { dateIndex := strings.LastIndex(report.Date, "/") date := report.Date[0 : dateIndex+3] val, ok := dates[date] if !ok { dates[date] = DateData{ Count: 1, } } else { val.Count += 1 dates[date] = val } } dates["1/1/06"].Districts["1"] = 1 fmt.Println("dates slice", dates) // fmt.Println("dates slice", dates)}func CreateReport() []Report { // csvFile, err := os.Open("./files/sacramento-jan-2006.csv") csvFile, err := os.Open("./files/sacramento-test.csv") if err != nil { log.Fatal("error opeining file", err) } defer csvFile.Close() reader := csv.NewReader(csvFile) var reports []Report for { line, err := reader.Read() if err == io.EOF { break } else if err != nil { log.Fatal("error reading file", err) }
1 回答

HUH函数
TA贡献1836条经验 获得超4个赞
它抱怨地图,因为那张地图是零。将其初始化为:Districts
if !ok { dates[date] = DateData{ Count: 1, Districts: make(map[string]int), }
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消