所以我有一个名为vizAttrs
的可视化属性序列。这是我实际想要做的:
[for (va: VisualizationAttribute | dataBinding2.eContents(VisualizationAttribute))]
[vizAttrs = vizAttrs->excluding(va) /]
[/for]
如果我在循环后检查vizAttrs
的元素,它仍然包含我希望被排除的va
。但是如果我尝试这样的操作:
[for (va: VisualizationAttribute | dataBinding2.eContents(VisualizationAttribute))]
[let newVizAttrs:Sequence(VisualizationAttribute) = vizAttrs->excluding(va) /]
[/for]
当我检查它时,newVizAttrs
确实有预期的值,这排除了va
元素。但是newVizAttrs
不能用于for循环的下一次迭代。我假设这可能是因为vizAttrs
是不可变的。有什么方法可以使vizAttrs
,或序列/集合,在Acceleo中可变吗?
2条答案
按热度按时间ars1skjm1#
我发现Acceleo中的所有变量都是最终结果。https://stackoverflow.com/a/12003064/12466641
在我的情况下似乎不可能对
vizAttrs
进行突变。我将寻找一个变通方法。eqfvzcg82#
如果我能很好地理解您要做的事情,您希望从
vizAttr
中删除dataBinding2
中包含的所有VisualizationAttribute
示例。你不需要在这里改变任何东西,你可以从
vizAttr
中拒绝它们。