una ternario sola operador linea hacer formas ejemplos java if-statement ternary-operator

java - sola - Si no hay otro operador ternario



operador ternario php (7)

¿Por qué utilizar un operador ternario cuando solo tiene una opción?

if (pstmt != null) pstmt.close();

¡es suficiente!

Tan lejos de lo que he estado buscando a través de la red, la declaración siempre tiene condición if y else como a ? b : c a ? b : c . Me gustaría saber si la declaración ternaria if puede usarse sin else . Suponiendo que tengo el siguiente código, deseo cerrar PreparedStatement si no es nulo

(Estoy usando lenguaje de programación Java).

PreparedStatement pstmt; //.... (pstmt!=null) ? pstmt.close : <do nothing>;


Como se menciona en las otras respuestas, no puede usar un operador ternario para hacer esto.

Sin embargo, si lo necesita, puede usar Java 8 Optional y lambdas para poner este tipo de lógica en una sola declaración:

Optional.of(pstmt).ifPresent((p) -> p.close())


Parece una pena no poder usar un ternario cuando se construye una matriz que tiene elementos opcionales.

my $yn = ''N''; my $foo = [ { n => ''a'' }, ( $yn eq ''Y'' ? { n => ''b'' } : undef), { n => ''c'' } ]; say Dumper $foo;

Realmente no quieres nada en lugar de undef o cadena vacía.

Esto también le da un elemento vacío en lugar de ''nada''.

my $yn = ''N''; my $foo = [ { n => ''a'' }, $yn eq ''Y'' && { n => ''b'' }, { n => ''c'' } ]; say Dumper $foo;


Solo escríbelo?

if(pstmt != null) pstmt.close();

Es exactamente la misma longitud.


Ternario if operador es el operador ternario en particular. Único en su clase.

De Wiki:

En matemáticas, una operación ternaria es una operación n-aria con n = 3.

Significa que los 3 operandos son necesarios para usted.


Una operación ternaria se llama ternaria porque lleva 3 argumentos, si toma 2 es una operación binaria.

Y como se señaló anteriormente, es una expresión que devuelve un valor.

Si omites el else, tendrías una situación indefinida en la que la expresión no devolvería un valor.

Como también se señaló en otra respuesta, debe usar una instrucción if.