我尝试遍历一个映射,将其作为指向函数的指针传递,但是我找不到访问元素的方法。这是代码:
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)
我尝试了方括号,但没有效果。如果我带走所有引用运算符(*&),则可以正常编译。
我该怎么写?
您不需要在地图上使用指针。
映射类型是引用类型,例如指针或切片
如果需要更改,Session可以使用一个指针:
Session
map[string]*Session