Skip to content

Conversation

@joan-miralles
Copy link

Me faltaría transformarlo en una clase pero todavía no tengo claros algunos conceptos. 📚

Copy link
Member

@JavierCane JavierCane left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En este caso estaríamos haciendo uso de la encapsulación en funciones para delegar cómo tratar cada uno de los niveles de log.

No obstante, lo que se pide en el ejercicio es hacer esta misma encapsulación gracias al currying. Es decir, invocar parcialmente a la función definida aquí como log.

Algo tal que:

def log(level: String)(message: String): Unit = println(s"[$level] $message")

def debug(message: String): Unit = log(level = "DEBUG")(message)

debug("👋👋👋") // output: "[DEBUG] 👋👋👋"


def my_log(level: String, message: String): Unit = log("MISOLUCION")(level, message)

def debug = (message: String) => my_log("[DEBUG]", message)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Posible alternativa a la hora de declarar esta misma función:

def debug(message: String): Unit = my_log("[DEBUG]", message)


def log(prefix: String)(level: String, value: String): Unit = println("[" + prefix + "]" + level + value)

def my_log(level: String, message: String): Unit = log("MISOLUCION")(level, message)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

la convención a la hora de definir funciones y valores en Scala es camelCase

@@ -0,0 +1,15 @@
//Logger

def log(prefix: String)(level: String, value: String): Unit = println("[" + prefix + "]" + level + value)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gracias a especificar el "interpolador" s antes de las comillas podemos añadir variables a la hora de formar strings:

antes:

"[" + prefix + "]" + level + value

después:

s"[$prefix] $level $value"

@@ -0,0 +1,15 @@
//Logger
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

te agradeceríamos que añadieras tu solución dentro de una nueva subcarpeta src/main/tv/codely/scala_intro_examples/lesson_06_anon_fn_currying/exercise_solutions/ y con nombre juan_miralles_logger.sc. De esta forma otros usuarios también pueden añadir sus propuestas, y podemos mergear la PR :)

Gracias!

Fixes based on PR comments
@joan-miralles
Copy link
Author

Changes done

@rgomezcasas rgomezcasas merged commit a524ccd into CodelyTV:master Jan 11, 2018
@rgomezcasas
Copy link
Member

rgomezcasas commented Jan 11, 2018

Thanks! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants