【问题标题】:Switch Case statements in template toolkit模板工具包中的 Switch Case 语句
【发布时间】:2012-08-24 08:37:58
【问题描述】:

我想在模板工具包中实现 switch case 语句。我的代码如下:

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

我收到一条错误消息,提示“”是我脚本​​中的意外标记。谁能帮我解决这个问题。我最好不想使用 IF 语句,因为它会降低脚本的执行速度。上面有没有其他选择。

提前谢谢...

【问题讨论】:

    标签: template-toolkit


    【解决方案1】:

    模板代码不支持除相等或 in-list 之外的任何内容,如 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" -%]
    

    【讨论】:

    • 再次感谢您的回复...我已经在我的代码中实现了IF语句,但是我想看看Switch case是否与速度有关..
    • 很高兴为您提供帮助。请考虑勾选答案和/或投票。这就是 StackOverflow 的工作原理。
    猜你喜欢
    • 2013-09-24
    • 2021-06-13
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2015-11-25
    相关资源
    最近更新 更多