2014-05-01 41 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,我不会推荐直接返回一个容器类型,我总是把它放到一个结构中。不,这没有任何技术问题,这纯粹是关于界面演变的:因为你最多只能有一个返回值,所以你将不能扩展由服务函数返回的数据结构,除非它是(可扩展的) 结构体。否则,您将需要另一个服务功能。

参考文献:

相关问题