Tener,Cómo pasar una o ninguna variable arg en scala?
def test(args: Any*) = args.size
me gustaría llamarlo con la lista de argumentos vacía dependiendo de la condición, pero evite if/else.
he salido con esta solución:
test(List("one").filter(_ => condition) : _*)
¿Hay mejor manera de que esto?
Para más contexto, estoy jugando con Scala Juego 2.0, y tienen la siguiente:
user => Redirect(routes.Application.index).withSession("username" -> user._1).withCookies(
List(Cookie("rememberme", Crypto.sign(user._1) + "-" + user._1)).filter(_ => user._3) : _*)
donde user._3
es booleano rembemberme.
Me gustaría no llamar con Session o llamarlo con la lista de argumentos vacía (no crear una instancia de Cookie) si rememberme es falso, de manera scala.
Gracias.
Gracias, estoy de acuerdo en que este es el más limpio, y realmente no lo hice quiero evitar if/else, pero evito crear una lista de instancias, así que me faltaba Seq.empty o Nil, así que la segunda respuesta también es útil :) – avalez
@alavez si tu objetivo era evitar crear una lista, esto es un gran error, porque eso es exactamente lo que 'Seq' hace! Usted lo evita asignando la parte anterior con Cookies a un 'val t', y luego llamando a' if (user._3) t.withCookies (...) else t.withCookies() '. ¡Las variables temporales son buenas! –
Gracias por tu comentario. ¿Estoy en lo cierto al pensar que usar Nil también evitará crear una instancia de la Lista? Y solo para una mejor comprensión, ¿es Seq.empty de alguna manera mejor o peor que Nil? – avalez