我尝试循环遍历地图,将其作为指向函数的指针传递,但我找不到访问元素的方法。这是代码:
func refreshSession(sessions *map[string]Session) {
now := time.Now()
for sid := range *sessions {
if now.After(*sessions[sid].timestamp.Add(sessionRefresh)) {
delete( *sessions, sid )
}
}
}
此示例中的第 4 行返回以下编译错误:
./controller.go:120: invalid operation: sessions[sid] (type *map[string]Session does not support indexing)
我尝试了括号,但没有效果。如果我去掉所有引用运算符(* &),那么它可以正常编译。
我该怎么写这个?
您不需要将指针与地图一起使用。
映射类型是引用类型,例如指针或切片 https://blog.golang.org/go-maps-in-action
如果您需要更改Session
你可以使用指针:
map[string]*Session
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)