una ternario operador linea hacer formas example ejemplos java if-statement velocity

linea - operador ternario java ejemplos



¿Cómo hacer un operador en línea if/otherwise(también conocido como ternario) en Velocity? (3)

No necesita una directiva #macro o #set. La clave es usar llaves para la directiva #else.

#if($plural)were#{else}was#end

Del doc (casi al final de la sección de condicionales):

Una nota más útil. Cuando desee incluir texto inmediatamente después de una directiva #else, deberá usar corchetes que rodeen la directiva para diferenciarlo del siguiente texto. (Cualquier directiva puede delimitarse con llaves, aunque esto es más útil para #else).

NOTA : Independientemente de lo que diga el documento, descubrí que puede ser necesario agregar los corchetes al usar una simple instrucción if en línea.

#if($includePrefix)Affected #{end}Inspection

En Java puro, podría hacer esto:

value = (a > b) ? a : b;

Mientras que en Velocity, la forma larga sería:

#if($a > $b) #set($value = $a) #else #set($value = $b) #end

¿Hay una forma corta en Velocity? Quiero poder hacer un if / de otra manera en línea.


También hay un enfoque con macro reutilizable:

#macro(iif $cond $then $else)#if($cond)$then#else$else#end#end

Entonces

#define ($value) #iif("$a > $b", $a, "$b") #end

Tenga en cuenta que los documentos de velocidad indican que el uso de macros implica cierto impacto en el rendimiento.


Tu puedes hacer

#set($value = "#if($flag)red#{else}blue#end")