我是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();有可能吗?在此之前,非常感谢您。
发布于 2014-04-14 20:07:58
StringTemplate没有内置的操作符来重复。相反,您需要迭代,如下面的问题所述。
Is there anything like Enumerable.Range(x,y) in Java?
请记住,由于当前在Iterator<T>中的限制,您需要传递一个Iterable<T>而不是一个Iterable<T>(解释器支持Collection<T>,但不支持Iterable<T>)。如果您想使用内置迭代变量i或i0,也可以传递一个适当大小的new Object[n]。
https://stackoverflow.com/questions/23067378
复制相似问题