Ger*_*oth 10
Groovy支持使用该类的对Tuple2.
使用的一个小例子Tuple2:
def m = [a: new Tuple2(1, 2)]
m.b = new Tuple2('1', '2')
assert m.a.first == 1
assert m.a.second == 2
assert m.b.first == '1'
assert m.b.second == '2'
Run Code Online (Sandbox Code Playgroud)
您也可以使用Map以下值来实现或多或少相同:
def n = [a: [first: 1, second: 2]]
n.b = [first: '1', second: '2']
assert n.a.first == 1
assert n.a.second == 2
assert n.b.first == '1'
assert n.b.second == '2'
Run Code Online (Sandbox Code Playgroud)
根据Gergely的回答, Groovy有一个Tuple2类.
但是,使用可能更容易的Pair或tuple的替代方法; Groovy支持一种称为多重赋值的功能,您可以在其中将数组或列表的成员分配给不同的变量:
groovy:000> (a, b) = [1, 2]
===> [1, 2]
groovy:000> a
===> 1
groovy:000> b
===> 2
Run Code Online (Sandbox Code Playgroud)
变量不必具有相同的类型.
所以,你可以从一个方法调用返回两个条目列表,然后让调用它们分配给不同的变量,并没有涉及任何一种像一对或者Tuple2专门的容器,你不得不从它解压值.
如果你想要一个明确定义的合同,那就去你自己的班级.或者使用Map,这样您至少可以使用键为返回的不同内容指定名称.
使用Tuple2或Pair对列表的顺序敏感,在命名方面是零改进,并添加额外的样板代码来打包和解包.
| 归档时间: |
|
| 查看次数: |
5006 次 |
| 最近记录: |