以 Table 格式将列表打印到控制台
Print List to console in Table format
我正在寻找可以将列表以表格格式输出到控制台的 Freemarker 模板。
<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"] as x>
${x}
</#list>
我正在寻找如下控制台输出:
foo bar baz
huhu lala keke
koko fifi bubu
我认为 ${x?item_cycle('col1', 'col2', 'col3')}
也许可以,只为 col3
项添加换行符。但是如果 item_cycle?
上的 if else 逻辑我该怎么办
最好的添加换行符的方法可能是 ?chunk(n)
。此外,例如可以使用 ?right_pad(n)
确保列宽(您没有询问过)。所以例子是:
<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"]?chunk(3) as row>
<#list row as x>${x?right_pad(10)}</#list>
</#list>
顺便说一句,正如你所问的,你当然可以写 <#if x?item_cycle(...) == ...>
,甚至 ${x}${x?item_cycle('', '', '\n')}
,或 <#if x?item_count % 3 == 0>
,但这些都是更丑陋的解决方案。
我正在寻找可以将列表以表格格式输出到控制台的 Freemarker 模板。
<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"] as x>
${x}
</#list>
我正在寻找如下控制台输出:
foo bar baz
huhu lala keke
koko fifi bubu
我认为 ${x?item_cycle('col1', 'col2', 'col3')}
也许可以,只为 col3
项添加换行符。但是如果 item_cycle?
最好的添加换行符的方法可能是 ?chunk(n)
。此外,例如可以使用 ?right_pad(n)
确保列宽(您没有询问过)。所以例子是:
<#list ["foo", "bar", "baz", "huhu", "lala", "keke", "koko", "fifi", "bubu"]?chunk(3) as row>
<#list row as x>${x?right_pad(10)}</#list>
</#list>
顺便说一句,正如你所问的,你当然可以写 <#if x?item_cycle(...) == ...>
,甚至 ${x}${x?item_cycle('', '', '\n')}
,或 <#if x?item_count % 3 == 0>
,但这些都是更丑陋的解决方案。