模板工具箱中的Switch Case语句

时间:2012-08-23 11:35:40

标签: template-toolkit

我想在Template toolkit中实现switch case语句。我的代码如下:

[% SWITCH myvar %]
[% CASE > 4 %]
Value is amplified
[% CASE < 1%]
Value is Deleted
[% CASE %]
Normal Value
[%END%]

我收到一条错误消息,说'&lt;'和'&gt;'在我的脚本中是意外的令牌。任何人都可以帮我解决这个问题。我最好不要使用IF语句,因为它会降低我的脚本执行速度。上面是否有其他替代方案。

提前致谢...

1 个答案:

答案 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" -%]