me gustaría hacer en Scala algo que haría en Java como esto:Scala nulo como valor por defecto para el parámetro Int llamado
public void recv(String from) {
recv(from, null);
}
public void recv(String from, Integer key) {
/* if key defined do some preliminary work */
/* do real work */
}
// case 1
recv("/x/y/z");
// case 2
recv("/x/y/z", 1);
En Scala que podía hacer:
def recv(from: String,
key: Int = null.asInstanceOf[Int]) {
/* ... */
}
pero se ve feo. O podría hacer:
def recv(from: String,
key: Option[Int] = None) {
/* ... */
}
pero ahora llamada con la tecla se ve feo:
// case 2
recv("/x/y/z", Some(1));
¿Cuál es la correcta Scala manera? Gracias.
¿qué pasa con el valor por defecto = -1 o 0? – sschaef
@Antoras Es posible, pero no elegante (supongamos que la clave puede ser cualquier valor Int). – woky
"Algunos" dejarán de parecer feos una vez que te salve de algunas docenas de NullPointerExceptions :) –