【问题标题】:Is it dangerous to name a protobuf field message?命名 protobuf 字段消息是否危险?
【发布时间】:2020-02-14 21:25:08
【问题描述】:

考虑以下 protobuf:

message SendRequest {
  /** The raw text of the message that the caller wishes to send. */
  optional string message = 1;
}

请注意,字符串message 被用作字段名称。 protobuf 编译器似乎对此没问题,即使 message 是 protobuf 关键字。

这种用法是否符合某些标准,因为关键字是由某些标准定义的,在字段名称中会被忽略,或者这会在将来破坏我的应用程序吗?

【问题讨论】:

  • 这是一个很好的问题。我认为在这种情况下应该没问题(基本上是上下文关键字而不是保留关键字),但是......我可以命名消息repeated吗?还有其他边缘情况吗?最终,这里的规范是相当非正式的,以至于我猜你可以说“protoc”作为参考实现定义了 DSL。不过,我敢打赌,我处理的情况并不相同! (我有自己独立的 proto 解析器)

标签: protocol-buffers


【解决方案1】:

是的,这是可能的,因为在运行时,proto 字段由它们的 id(在您的情况 1 中)而不是它们的名称来标识。

【讨论】:

    猜你喜欢
    • 2012-04-24
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2017-08-21
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多