Xtend模板表示法

时间:2013-01-26 09:09:17

标签: code-generation xtend

我遇到了Xtend模板表示法的问题。

我想在模板方法中执行«i=i+1»

def generateSomething() '''
...
«i=i+1»
... 
'''

«i=i+1»显然只是计算我更高,但它也在生成的文件中显示i的值。但我不想那样。有没有办法在不改变方法的情况下解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可以使用块表达式:

def generateSomething() '''
...
«{i=i+1 ''}»
... 
'''

答案 1 :(得分:1)

如果您的代码可以使用AtomicInteger而不是int,那么这应该可行。

val i = new AtomicInteger
val generated = '''
        ...
        «i.andIncrement»
        ... 
        '''

答案 2 :(得分:0)

«FOR i : 0..iMaxInclusive» some text «somelist.get(i)» more text «ENDFOR»