dictionary - Groovy:在代码中动态创建嵌套/组合地图
问题描述
我正在尝试在代码中动态创建嵌套地图,如下所示。
def people = [
[name: 'Ash', age: '21', gender: 'm'],
[name: 'Jo', age: '22', gender: 'f'],
[name: 'etc.', age: '42', gender: 'f']
]
所以我可以像下面这样搜索它
person = people.findAll {item ->
item.gender == 'm' &&
item.age == '21'}
我的问题是,虽然我可以在代码中动态创建一维地图,但我不知道如何在代码中动态组合地图以创建嵌套地图,例如让我们假设在代码中我创建了两个地图name1和name2。如何将它们添加到人员 地图中,以便它们像上面的示例一样嵌套?
def people = [:]
def name1 = [name:'ash', age:'21', gender:'m']
def name2 = [name:'Jo', age:'22', gender:'f']
我已经搜索/尝试了很多帖子但没有成功。下面很接近,但不起作用:(
people.put((),(name1))
people.put((),(name2))
解决方案
在您的示例中,people
是地图列表,而不是嵌套地图
所以你可以简单地做:
def people = []
def name1 = [name:'ash', age:'21', gender:'m']
def name2 = [name:'Jo', age:'22', gender:'f']
然后:
people += name1
people += name2
或者在一行中定义它:
def people = [name1, name2]
推荐阅读
- wordpress - Can we replicate ACF functionality in our theme?
- r - R问题:从字符串结尾提取数字字符
- spring - 如何跳过某些路线的安全检查?
- java - 即使函数签名抛出它,编译器也会抱怨未处理的 IOException
- rust - 性能分析
- python - 如何在 Django 模板语言中进行算术运算后将值重新分配给变量
- python - Unable to import tensorflow2.0,(no gpU) ImportError: DLL load failed: 找不到指定的程序
- angular - 在序列化数据中,角度将未选中的复选框设置为 false
- python - 使用 Python 和 PyAudio 的语音转文本无法在操作系统上运行
- php - 巴士时刻表 - API wmata - PHP