过滤掉ST4中的空字符串
Filter out empty strings in ST4
考虑以下示例:
<["foo", "", "bar"]; separator=",">
这给出了结果:
foo,,bar
但我需要:
foo,bar
有没有办法在 ST4 中使用分隔符格式化之前过滤掉空字符串值?
(在实际代码中,值来自另一个模板,该模板具有 <if>
条件和 returns 模型中不需要的数据的空结果,我不想将条件移出该模板保留模板 incapsulated/isolated。)
我找到了两个辅助工具的解决方法。但这太令人毛骨悚然了...
DropEmpty ::= ["": [], default: key]
Separated(l, s, w=false) ::= "<if (DropEmpty.(first(l)))><if (w)><s><endif><first(l)><Separated(rest(l), s, true)><else><if (rest(l))><Separated(rest(l), s, w)><endif><endif>"
MyTemplate() ::= <<
<Separated(["", "foo", "", "bar", "", "", "goo", "", ""], ",")>
>>
这给出:
foo,bar,goo
考虑以下示例:
<["foo", "", "bar"]; separator=",">
这给出了结果:
foo,,bar
但我需要:
foo,bar
有没有办法在 ST4 中使用分隔符格式化之前过滤掉空字符串值?
(在实际代码中,值来自另一个模板,该模板具有 <if>
条件和 returns 模型中不需要的数据的空结果,我不想将条件移出该模板保留模板 incapsulated/isolated。)
我找到了两个辅助工具的解决方法。但这太令人毛骨悚然了...
DropEmpty ::= ["": [], default: key]
Separated(l, s, w=false) ::= "<if (DropEmpty.(first(l)))><if (w)><s><endif><first(l)><Separated(rest(l), s, true)><else><if (rest(l))><Separated(rest(l), s, w)><endif><endif>"
MyTemplate() ::= <<
<Separated(["", "foo", "", "bar", "", "", "goo", "", ""], ",")>
>>
这给出:
foo,bar,goo