簡體   English   中英

如何定義地圖可以在節儉中接受其他類型的價值?

[英]how can I define a map accept different kind of value in thrift?

我用節儉定義了一個結構:

struct QuerySetRecord {
    1:string recordId,
    2:string crawlerName,
    3:string recordType,
    4:map<string,string> dataMap,
    5:i16 priority,
}

問題是dataMap ,我不僅要接受string值,我可能仍想接受ListMap ,例如map<string, list<string>> dataMap 換句話說,我想要一個類型,例如Java中的root Object ,Python中的object

我可以這樣做嗎?

您將必須創建自己的Object並列出其中的所有可能的類。

union Object {
   1: string str;
   2: i32 number32;
}

(因為我不確定在所有語言中聯合實現的工作方式,我會選擇帶有所有字段可選的struct)

struct Object {
   1: optional string str;
   2: optional i32 number32;
}

然后: map<string, Object>

在Thrift中,您無法創建“ accept all”(全部接受)字段,因為它不能跨語言完全移植,這是Thrift的主要功能之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM