【发布时间】:2014-07-01 02:14:02
【问题描述】:
如何在 Go 中实现一个仅使用一次查找从地图中弹出键的函数?此版本在地图上进行两次查找:
package main
import "fmt"
func main() {
m := map[string]int{"a":1, "b":2}
a, ok := m["a"]
if ok {
delete(m, "a")
}
fmt.Println(a, m)
}
我检查了可能delete 返回已删除键的值:
package main
func main() {
m := map[string]int{"a":1, "b":2}
println(delete(m, "a"))
}
但这不起作用:
prog.go:5: delete(m, "a") used as value
【问题讨论】:
-
“Pop”是典型的栈/堆操作。地图是无序的;集,如果你愿意的话。请改用
container/heap。 -
@tomwilde 我的意思是
pop和Python dicts一样
标签: go