【发布时间】:2015-03-04 15:39:37
【问题描述】:
关于import语句,google说https://developers.google.com/protocol-buffers/docs/proto#services:
您可以通过导入来自其他 .proto 文件的定义来使用它们。要导入另一个 .proto 的定义,您需要在文件顶部添加一个 import 语句。 默认情况下,您只能使用直接导入的 .proto 文件中的定义。
...听起来不错,但那又如何呢:
1.proto:
message M1{
required string foo = 1;
}
2.proto:
import "1.proto";
message M2{
required M1 m_1 = 1;
}
3.proto:
import "2.proto";
message M3{
required M2 m_2 = 1;
}
所以,在解析 3.proto 时,M1 不应该是可访问的,因为 1.proto 不是从 2.proto 公开导入的。 不过M2应该是,因为是直接从3.proto导入的...
那么 M2.m_1 呢?编译器应该如何生成类?
【问题讨论】:
-
也许有前向声明?尝试使用例如C++ 或 Java 看看。