純粋なJavaでは、これを行うことができます。
value = (a > b) ? a : b;
一方、Velocityでは、長い形式は次のようになります。
#if($a > $b)
#set($value = $a)
#else
#set($value = $b)
#end
Velocityに短い形式はありますか? if/otherwiseインラインを実行できるようにしたい。
できるよ
#set($value = "#if($flag)red#{else}blue#end")
#macroまたは#setディレクティブは必要ありません。キーは#elseディレクティブに中括弧を使用しています。
#if($plural)were#{else}was#end
doc から(ほぼ条件セクションの最後に):
もう1つの便利なメモ。 #elseディレクティブの直後にテキストを含める場合は、ディレクティブを直接囲む中括弧を使用して、次のテキストと区別する必要があります。 (どのディレクティブも中括弧で区切ることができますが、これは#elseに最も役立ちます)。
[〜#〜]注[〜#〜]:ドキュメントの内容に関係なく、中かっこを追加する必要があることがわかったので単純なインラインifステートメントを使用する場合。
#if($includePrefix)Affected #{end}Inspection
再利用可能なマクロを使用する方法もあります。
#macro(iif $cond $then $else)#if($cond)$then#else$else#end#end
その後
#define ($value)
#iif("$a > $b", $a, "$b")
#end
速度のドキュメントには、マクロを使用するとパフォーマンスに影響が及ぶことが記載されていることに注意してください。