首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建key:value对

动态创建key:value对
EN

Stack Overflow用户
提问于 2011-12-28 02:56:16
回答 1查看 5.7K关注 0票数 0

我有以下groovy脚本:

代码语言:javascript
复制
#!/usr/bin/env groovy 
def files = [ 
    'file-1.bat' :  
        [       
            'content-1-1', 
            'content-1-2', 
            'content-1-3' 
        ],      
    'file-1' : 
        [       
            'content-unix-1-1', 
            'content-unix-1-2', 
            'content-unix-1-3', 
        ],      

    'file-2.bat' :  
        [       
            'content-2-1', 
            'content-2-2', 
            'content-2-3' 
        ],      
    'file-2' : 
        [       
            'content-unix-2-1', 
            'content-unix-2-2', 
            'content-unix-2-3', 
        ],      
] 

files.each { 
    file_key, file_value -> println file_key; 
    file_value.each { 
        file_content -> println "\t"+file_content; 
        files[ file_key ] = [file_content : true]; 
    }   
} 

println ' Upgraded content'; 

files.each { 
    file_key, file_value -> println file_key; 
    file_value.each { 
        file_content -> println "\t"+file_content; 
    }   
} 

下面这几行代码导致了我的问题:

代码语言:javascript
复制
files[ file_key ] = [file_content : true]; 

我想做的是为映射中的每个条目创建键的真实部分:值对……我知道我没有以这种方式定义列表……我试图通过使用filesfile_key.put(键,值)来增强地图;但这并不能work...Maybe我在一个完全错误的方向上思考…该构造的背景是文件(file-1.bat、file-1等)中的背景。我将检查以地图形式提供的内容是否存在

代码语言:javascript
复制
'file-1.bat' : [       
     'content-1-1', 
     'content-1-2', 
     'content-1-3' 
 ],

我可以执行以下操作:

代码语言:javascript
复制
'file-1.bat' : [       
     'content-1-1' : false, 
     'content-1-2' : false, 
     'content-1-3' : false, 
 ],

但这正是我想要避免的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 03:51:16

您认为put()将解决您的问题是正确的,但是您不能将地图元素放入列表中。您需要首先创建一个可以通过put进入的映射,然后将生成的映射指定为输出。

例如:

代码语言:javascript
复制
files.each { 
    file_key, file_value -> println file_key; 
    def file_map = [:]; 
    file_value.each { 
        file_content -> println "\t"+file_content; 
        file_map.put(file_content, true); 
    }
    files[ file_key ] = file_map; 
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8648202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档