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