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")