亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將值重新分配給映射內部的結構(Golang)

如何將值重新分配給映射內部的結構(Golang)

Go
千萬里不及你 2022-08-24 19:03:03
我正在解析一個警察記錄csv文件。文件中有多個同一日期的匹配項。我有日期映射,它使用分配給它的DateData類型創建新的日期鍵。現在的 DateDate 只有一個鍵。每次循環中再次出現同一日期時,該鍵都會遞增?,F在我只能增加一次。計數從1到2,即使有幾十個相同的日期。Count這是出于清晰起見,我通過csv文件的較短版本獲得的輸出。user@MacBook-Pro-3 criminal-record-parser % go run main.goDoes not exist yet{1}{2}{2}{2}{2}計數應該增加到總共5,但它只增加一次 這是我在主包中的所有代碼: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}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 {            fmt.Println("Does not exist yet")            dates[date] = DateData{                Count: 1,            }        }        val.Count += 1        fmt.Println(val)    }    fmt.Println("dates slice", dates)}func CreateReport() []Report {    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 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您沒有使用更新的計數更新您的計數。加:map

val.Count += 1fmt.Println(val)

dates[date] = val // <--- add this

https://play.golang.org/p/jwDgDGDnXAw

輸出:

Does not exist yet
{1}
{2}
{3}
{4}
{5}
dates slice map[1/1/06:{5}]


查看完整回答
反對 回復 2022-08-24
  • 1 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號