【发布时间】:2020-06-16 18:41:00
【问题描述】:
给定以下 protobuf 定义:
message MyMessage {
string Foo = 1;
int From = 2;
int To = 3;
}
然后我有一个案例,我只想从客户端发送 Foo 字符串,没问题。 问题出现在服务器中,我想知道 From 和 To 是否有值(UNIX 时间戳)。 如果客户端没有明确设置该值,那么 Go 会将值设置为 0,这是一个完全有效的 Unix 时间戳。在这一点上,我不知道客户是打算给我 1970-01-01 00:00:00 还是打算留空。
我可以添加两个布尔值来说明客户是否设置了 From 和 To,但我觉得应该有比这更优雅的解决方案。
有没有办法真正查明客户端是否打算发送空值,或者它是否真的将值设置为0?对于字符串等,"" 也是如此。
【问题讨论】: