六 Protobuf3引入其他 proto檔案

2022-05-02 16:57:10 字數 1132 閱讀 2767

您可以使用其他訊息型別作為字段型別。例如,假設您希望在每個searchresponse訊息中包含result訊息,為此,您可以在.proto中定義結果訊息型別,然後在searchresponse中指定result型別字段:

message searchresponse 

message result

在上面的例子中,result 訊息型別和searchresponse定義在同乙個檔案中——如果你想用作字段型別的訊息型別已經在另乙個.proto 檔案中定義了呢?

您可以通過匯入其他.proto檔案來使用檔案中的定義的型別。 您可以在檔案的頂部新增一條import語句:

import "myproject/other_protos.proto";
預設情況下,您只能使用直接匯入的 .proto檔案定義。然而,有時你可能需要移動乙個 .proto檔案到乙個新的位置,但不想為此更新了所有呼叫它的.proto檔案,現在你可以在檔案原始位置放置乙個仿造的 .proto檔案,使用import public將所有匯入**到新位置。任何包含import public語句的proto的人都可以臨時依賴import public依賴。例如:

// new.proto

// all definitions are moved here

// old.proto

// this is the proto that all clients are importing.

import public "new.proto";

import "other.proto";

// client.proto

import "old.proto";

// you use definitions from old.proto and new.proto, but not other.proto

協議編譯器使用-i/--proto_path標誌在協議編譯器命令列指定的一組目錄中搜尋匯入的檔案。如果沒有給出標誌,它會在呼叫編譯器的目錄中查詢。通常,您應該將--proto_path標誌設定為專案的根目錄,並對所有匯入使用完全限定的名稱。

可以匯入proto2訊息型別並在proto3訊息中使用它們,反之亦然。但是,proto2列舉不能直接在proto3語法中使用(如果匯入的proto 2訊息使用它們也沒關係)。

MOT RFS筆記 P1 引入

edx multi object tracking for automotive systems 課程筆記 p1引入 首先解釋一下為什麼要學習隨機有限集,最近學習多目標追蹤 mot 當目標數量很多的時候,傳統的點理論 就是用矩陣 會導致計算量大,對於未知和時變的目標數量也較難實現,而基於隨機有限集的...

vue系列之vue cli 3引入ts

vue class component 強化 vue 元件,使用 typescript 裝飾器 增強 vue 元件 vue property decorator 在 vue class component 上增強更多的結合 vue 特性的裝飾器 vuex class 基於vue class comp...

質量保證的六個模式(3) 引入客戶質量模式

質量保證的六個模式 3 引入客戶質量模式 陳能技2007 10 6 原文 quality it s all in the values neil harrison 我們從研究的組織中發現模式。這些模式形成了動態組成的軟體專案組的語言模式。這裡有一些模式是跟質量和價值尤其相關的。這些模式是從 orga...