gpt4 book ai didi

dictionary - 在 map 中设置和顺序递增值的实用方法?

转载 作者:IT王子 更新时间:2023-10-29 00:53:31 28 4
gpt4 key购买 nike

package main

import (
"fmt"
)

var store = map[string]int{}

func breadArrived(num int) {
if breadTotal, ok := store["bread"]; ok {
breadTotal += num
} else {
store["bread"] = num
}
fmt.Printf("%v\n", store)
}

func main() {
breadArrived(1)
breadArrived(2)
breadArrived(3)
}

上面的代码忽略了 += 运算符,所以 store["bread"] 总是等于 1。我假设我在这里遗漏了诸如“通过引用传递”之类的内容。另外,有什么更方便的方法吗?

最佳答案

您只是在增加 breadTotal 局部变量,而不是 store 映射中的值。应该是:

store["bread"] = breadTotal + num

你也可以简单地做:

store["bread"] += num

此外,由于索引 map 会返回 zero value尚未在映射中的键的值类型(int 的零值是 0 - 正确地告诉 no bread yet),if 完全没有必要。你可以简单地做:

func breadArrived(num int) {
store["bread"] += num
fmt.Printf("%v\n", store)
}

输出(在 Go Playground 上尝试):

map[bread:1]
map[bread:3]
map[bread:6]

关于dictionary - 在 map 中设置和顺序递增值的实用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41851566/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com