为了账号安全,请及时绑定邮箱和手机立即绑定

为什么结构内的地图不接受赋值

为什么结构内的地图不接受赋值

Go
慕容708150 2022-08-24 19:03:31
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),
            }



查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号