循环 – 你如何在groovy中嵌套迭代器?
发布时间:2020-12-14 16:37:06 所属栏目:大数据 来源:网络整理
导读:groovy是否支持任何类型的嵌套迭代器符号? 在下面的例子中,我想以某种方式获取来自外部迭代器的projectName值到我的内部迭代器中。这是否可能没有存储在变量中?在我的例子中,我得到一个没有找到“project”的runtuime错误 it.myprojects.project.each{ p
groovy是否支持任何类型的嵌套迭代器符号?
在下面的例子中,我想以某种方式获取来自外部迭代器的projectName值到我的内部迭代器中。这是否可能没有存储在变量中?在我的例子中,我得到一个没有找到“project”的runtuime错误 it.myprojects.project.each{ println("Project name: " + it.projectName) it.myroles.role.each{ Role role = new Role() role.setName(project.projectName)//how do I get projectName here without storting it in a variable in the outer loop? } } 解决方法
感觉这样应该工作:
it.myprojects.project.each{ project-> println("Project name: " + project.projectName) it.myroles.role.each{ Role role = new Role() role.setName(project.projectName) } } 另外,您可以使用所有者变量引用外部封闭 it.myprojects.project.each{ println("Project name: " + it.projectName) it.myroles.role.each{ Role role = new Role() role.setName(owner.projectName) } } 但是,如果您似乎正在做的是创建Role类的新实例,我没有看到迭代角色的原因。也许这样的事情会更简单: it.myprojects.project.each{ println("Project name: " + it.projectName) it.myroles.role.size().times { Role role = new Role() role.setName(owner.projectName) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |