【发布时间】:2010-10-02 02:49:39
【问题描述】:
我能获得一些关于 XPand 的好教程吗?我需要获得有关 LET 等命令的信息。如果有人能在上面贴一些样本就更好了。
我面临的问题是......我运行一个“for”循环,在检查了一些条件后,我需要增加一个计数器。但我不能这样做。当我增加计数器时,它会打印到输出文件中。
提前致谢。
【问题讨论】:
标签: java eclipse xtext oaw xpand
我能获得一些关于 XPand 的好教程吗?我需要获得有关 LET 等命令的信息。如果有人能在上面贴一些样本就更好了。
我面临的问题是......我运行一个“for”循环,在检查了一些条件后,我需要增加一个计数器。但我不能这样做。当我增加计数器时,它会打印到输出文件中。
提前致谢。
【问题讨论】:
标签: java eclipse xtext oaw xpand
有一个 worked example 模板 Ant 脚本。同一篇文章在 DZone 上重新发布。
更具体地说,this paper 在LET 运算符上展示了这个示例:
<<LET packageName + "." + className AS fqn>>
the fully qualified name is: <<fqn>>;
<<ENDLET>>
最后,来自openArchitecureWare forum的这篇帖子:
LET 语句非常简单:它创建一个具有指定值的局部常量以及该常量可见的范围。这也意味着 LET 语句不能用于循环行为。
事实上,如果你尝试循环,你基本上是在错误的地方解决问题。 XPand 模板仅用于生成文本工件,而生成基础的大多数逻辑应在 Xtensions 中实现。 Xtend 也没有循环结构,但如果您愿意遵循函数式编程范式,则可以找到替代方案。另外,请注意 oaw.List 的 'indexOf' 方法。
【讨论】:
此答案与使用第二段发布的第二个问题有关。您可以使用链运算符 (->) 阻止表达式值被打印。 例如:
<<counterInc()->"">>
请参阅此处的官方在线帮助文档中的“throwError (Object o)”示例: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.xpand.doc%2Fhelp%2Fch04s02.html
您还可能会发现“计数器扩展”部分对 Xpand 中的计数器操作很有帮助
【讨论】: