2014-05-01 68 views
0

有沒有什麼辦法在節儉結構中創建一對對象?如何在Thrift結構中定義一對對象?

我需要定義一個節點結構,它需要Set對,有些事情是這樣的。

set < pair<value1,value2> > 

只有當我爲同一個'value1'創建一個新的Map時,我才能使用map來代替pair。

有沒有什麼辦法可以在節儉中做到這一點?

回答

0

你已經有了,有點。你對<>被稱爲節儉map<>

set < map< type1,type2>> 

您可以通過一個typedef(特別是具有推薦用於複雜的)使用這樣的聲明,或直接:

typedef set < map< type1,type2>> MyContainerType 

struct Foo { 
    1 : set < map< type1,type2>> direct 
    2 : MyContainerType   via_typedef 
} 

service Bar { 
    MyContainerType RevertAllPairs(1: set < map< type1,type2>> set_of_pairs) 
} 

BTW,我不會推薦直接返回一個容器類型,我總是把它放到一個結構中。不,這沒有任何技術問題,這純粹是關於界面演變的:因爲你最多隻能有一個返回值,所以你將不能擴展由服務函數返回的數據結構,除非它是(可擴展的) 結構體。否則,您將需要另一個服務功能。

參考文獻:

相關問題