poco me escribió lo siguiente pedazo de Scala:¿La opción de ajustar un valor es un buen patrón?
val f: File = ... // pretend this file came from somewhere
val foo = toFoo(io.Source.fromFile(f).mkString)
Realmente no me gusta la forma en que esto fluyó. Para entender lo que está pasando, usted tiene que comenzar con f
en el medio, lee de izquierda a fromFile
, lea derecho a mkString
, lea la izquierda de nuevo a toFoo
. Ugh.
Especialmente después de acostumbrarse a las transformaciones funcionales de secuencias, esto es difícil de leer. Mi próximo intento se ve así:
val foo = Some(f)
.map(io.Source.fromFile)
.map(_.mkString)
.map(toFoo)
.get
Me gusta el flujo de esta mucho mejor. Puedes ver lo que sucede. ¿Es esto un buen uso de la clase Option
? ¿O lo estoy abusando? ¿Hay un mejor patrón que pueda usar para lograr el mismo flujo?
¡es un fragmento que incluyo en cada proyecto que escribo! Debería estar realmente en la biblioteca estándar ... –
@Kevin - De acuerdo, debería estar en la biblioteca estándar. También lo tengo en todos mis proyectos, ya que tengo una biblioteca estándar que incluyo en todos los proyectos que escribo, y esta es una de las cosas que hay en ella. –
Una versión actualizada de la actual generación: 'clase implícita Piper [A] (a: A) {def |> [B] (f: A => B) = f (a)} se extiende AnyVal' –