0

我是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();

可能吗?提前谢谢了。

4

1 回答 1

0

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

Java中有没有类似 Enumerable.Range(x,y) 的东西?

请记住,由于 StringTemplate 中的当前限制(解释器支持,但不支持) ,您需要传递 anIterator<T>而不是 an 。如果你想使用内置的迭代变量or ,你也可以传递一个适当大小的.Iterable<T>Collection<T>Iterable<T>ii0new Object[n]

于 2014-04-14T20:07:58.067 回答