質問

速度の三項演算子を行う方法はありますか? これは私がやってみたいものです。

#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))

の代わりに分厚いのif-else

#if ($args.get(0) == "")
    #set ($name = "default")
#else
    #set ($name = $args.get(0))
#end

任意のアイデア?

役に立ちましたか?

解決

は、経験と VTLリファレンスを読むことから方法はありませんこれをする。あなたはこのような割り当てをたくさん持っていた場合は多分あなたは試してみて、それ以外の場合の繰り返しを避けるために、独自のVelocimacroの定義を見て可能性があります。

たとえば、マクロは唯一あなたが次のことを行うことができ、単一の文字列を出力した場合:

#set ($name = "#condOpt($args.get(0), "default")")

それはの#setのRHSが解析される手段として、マクロ呼び出しの周りに二重引用符が重要である。

他のヒント

あなたが言ったように、

私は、やってしまったマークます:

#macro(condOp $check, $default)
    #if ($check == "")
        $default
    #else
        $check
    #end
#end

そして私はそうのようにそれを呼び出すことができます:

#set ($name = "#condOp($args.get(0), 'default')")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top