模板引擎可用于代码生成。以下是Ruby ERB模板脚本的示例:
<ul><% for @item in @shopping_list %><li><%= @item %></li><% end %></ul>
但是,我的代码生成要求不仅仅是简单的变量扩展或for循环。我需要递归代码生成功能,换句话说,我需要一个带有递归模板支持的python或ruby模板引擎。有人可以为我推荐这样的模板引擎吗?非常感谢!
答案 0 :(得分:2)
Rails中默认使用的Ruby ERB模板系统支持递归模板。这是一个例子。
应用程序/视图/控制器1 / action1.html.erb 的:
Factorial of <%= @n %> equals to <%= render "factorial", :n => @n %>
应用程序/视图/控制器1 / _factorial.html.erb 的:
<% if n == 1 %>
1
<% else %>
<%= n %> * <%= render "factorial", :n => n - 1 %>
<% end %>
输出:
Factorial of 10 equals to 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1