为什么这个 zerolog hook 是一个无效的分配?
Why is this zerolog hook an ineffective assignment?
我想将 zerolog
条消息存储在一个切片中,以便于访问最后 n 条消息。 memoryLog.messages
保持为空,golangci-lint
抱怨 ineffective assignment to field memoryLog.messages
。我还是 Go 的新手,感觉好像遗漏了一些明显的东西,但我就是想不通。
type memoryLog struct {
config config
messages []string
}
func (memoryLog memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
memoryLog.messages = append([]string{message}, memoryLog.messages...)
if len(memoryLog.messages) > memoryLog.config.MemoryLogMaxItems {
memoryLog.messages = memoryLog.messages[:memoryLog.config.MemoryLogMaxItems]
}
}
memoryLog := memoryLog{config: config}
logger := log.Hook(memoryLog)
多亏了我的帮助,我才开始工作:
func (log *memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
//...
}
logger := log.Hook(&memoryLog)
我想将 zerolog
条消息存储在一个切片中,以便于访问最后 n 条消息。 memoryLog.messages
保持为空,golangci-lint
抱怨 ineffective assignment to field memoryLog.messages
。我还是 Go 的新手,感觉好像遗漏了一些明显的东西,但我就是想不通。
type memoryLog struct {
config config
messages []string
}
func (memoryLog memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
memoryLog.messages = append([]string{message}, memoryLog.messages...)
if len(memoryLog.messages) > memoryLog.config.MemoryLogMaxItems {
memoryLog.messages = memoryLog.messages[:memoryLog.config.MemoryLogMaxItems]
}
}
memoryLog := memoryLog{config: config}
logger := log.Hook(memoryLog)
多亏了我的帮助,我才开始工作:
func (log *memoryLog) Run(event *zerolog.Event, level zerolog.Level, message string) {
//...
}
logger := log.Hook(&memoryLog)