我想在Template toolkit中实现switch case语句。我的代码如下:
[% SWITCH myvar %]
[% CASE > 4 %]
Value is amplified
[% CASE < 1%]
Value is Deleted
[% CASE %]
Normal Value
[%END%]
我收到一条错误消息,说'&lt;'和'&gt;'在我的脚本中是意外的令牌。任何人都可以帮我解决这个问题。我最好不要使用IF语句,因为它会降低我的脚本执行速度。上面是否有其他替代方案。
提前致谢...
答案 0 :(得分:2)
模板代码不支持除“等于”或“列表内”之外的任何内容,如explained in the fine manual。
话虽如此,如果将CASE
语句编译成执行速度超过IF ... ELSIF ... END
的语句,我会非常惊讶。事实上,我会把钱花在任何语法汇编到完全相同的东西上。你也可以把它写成一系列三元运算符,但我仍然认为它在速度方面没有区别。
[%- IF myvar > 4;
"Value is amplified";
ELSIF myvar < 1;
"Value is Deleted";
ELSE;
"Normal Value";
END; -%]
...或...
[%- (myvar > 4) ? "Value is amplified" :
(myvar < 1) ? "Value is Deleted" : "Normal Value" -%]