问题:我是否总是应该使用 (*Event).Str、(*Event).Uint 等返回值?
作者: ratbekn创建于 2025年1月20日更新于 2026年1月26日
您好! 哪种方法是正确的? 1.
func (o *Order) foo(e *zerolog.Event) {
...
e.Str(OrderID, o.ID)
...
}我在这里关注的是, func (e *Event) Str(key, val string) *Event 没有明确说明 e 是在原地修改的。它只说明了它“添加了字段 key…”并且返回了 *Event。因此, 这种基于 func (e *Event) Str… 未记录的行为的方法。 问题: 有一天行为会被更改, 因此此代码将不再工作吗?
2.
func (o *Order) foo(e *zerolog.Event) {
...
*e = *(e.Str(OrderID, o.ID))
...
}这种方法更加可靠, 但可读性较差。 我们是否总是应该使用这种方法?
内容来源: rs/zerolog