0
有沒有什麼辦法在節儉結構中創建一對對象?如何在Thrift結構中定義一對對象?
我需要定義一個節點結構,它需要Set對,有些事情是這樣的。
set < pair<value1,value2> >
只有當我爲同一個'value1'創建一個新的Map時,我才能使用map來代替pair。
有沒有什麼辦法可以在節儉中做到這一點?
有沒有什麼辦法在節儉結構中創建一對對象?如何在Thrift結構中定義一對對象?
我需要定義一個節點結構,它需要Set對,有些事情是這樣的。
set < pair<value1,value2> >
只有當我爲同一個'value1'創建一個新的Map時,我才能使用map來代替pair。
有沒有什麼辦法可以在節儉中做到這一點?
你已經有了,有點。你對<>被稱爲節儉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,我不會推薦直接返回一個容器類型,我總是把它放到一個結構中。不,這沒有任何技術問題,這純粹是關於界面演變的:因爲你最多隻能有一個返回值,所以你將不能擴展由服務函數返回的數據結構,除非它是(可擴展的) 結構體。否則,您將需要另一個服務功能。
參考文獻: