在StringTemplate-4模板中生成和使用数组

时间:2014-04-14 18:22:47

标签: stringtemplate-4

我是 StringTemplate4 的新手,可能我会问一些过于简单,不可能或愚蠢的事情,但我找不到任何其他信息。 到目前为止,我已经设置了这个最小的模板集:

define(name,arity) ::= "<name>(<vars(arity)>)."
vars(n) ::= "<n:var();separator=\", \">"
var(n) ::= "V<n>"

我希望得到:

pred(V1, V2, V3).

通过调用以下代码:

STGroup group = new STGroupFile(...);
ST st = group.getInstanceOf("define");
st.add("name", "pred");
st.add("arity", 3);
String result = st.render();

有可能吗?非常感谢提前。

1 个答案:

答案 0 :(得分:0)

StringTemplate没有用于重复的内置运算符。相反,您需要进行迭代,如下面的问题所述。

Is there anything like Enumerable.Range(x,y) in Java?

请注意,由于StringTemplate中的当前限制,您需要传递Iterator<T>而不是Iterable<T>(解释器支持Collection<T>,但不支持Iterable<T> 1}})。如果您想使用内置迭代变量ii0,您还可以传递适当大小的new Object[n]