en JavaScript, podemos hacer algo como:equivalente al operador javascript || en Scala
value = f1() || f2() || f3();
Para ello, será f1, y asignarlo a valorar si el resultado no es nulo. solo si el resultado es nulo, llamará a f2 y lo asignará al valor si eso no es nulo. ...
Una forma de lograr esto en Scala se da aquí: How to make this first-not-null-result function more elegant/concise? crear una función getFirstNNWithOption que llama a cada función hasta que no nulo:
value = getFirstNNWithOption(List(f1 _, f2 _, f3 _))
Sin embargo, esto no es tan bonito como el Javascript || operador, que es más flexible. por ejemplo:
value = f1() || f2(3) || f3(44, 'ddd') || value4;
¿hay alguna manera de lograr esto en scala?
favor, lea esto, donde el encadenamiento está bien explicado. http://daily-scala.blogspot.com/2010/02/chaining-options-with-orelse.html –
@dave ¡buen punto, gracias! –
Puede valer la pena incluir una línea en esto, de lo contrario, todos los parámetros de llamada por nombre ... –