la coalescencia nula se traduce aproximadamente en return x, unless it is null, in which case return y
A menudo necesito return null if x is null, otherwise return x.y
Puedo usar return x == null ? null : x.y;
No está mal, pero eso null
en el medio siempre me molesta, parece superfluo. Preferiría algo como return x :: x.y;
, donde lo que sigue a ::
se evalúa solo si lo que le precede no lo es null
.
Veo esto como casi un opuesto a la coalescencia nula, algo mezclado con una verificación nula en línea concisa, pero estoy [ casi ] seguro de que no existe tal operador en C #.
¿Hay otros idiomas que tengan un operador de este tipo? Si es así, ¿cómo se llama?
(Sé que puedo escribir un método para ello en C #; lo uso return NullOrValue.of(x, () => x.y);
, pero si tienes algo mejor, me gustaría verlo también).