Tengo un método que llama a algunos otros métodos que hacen uso de un implícito de tipo Foo
. Me gustaría poner f implícito dentro de Foo. Así es como lo hago:Marcado de un argumento implícito dentro de un método
def myMethod(a: Int, f: Foo) = {
implicit val implicitF = f;
somethingThatNeedsFoo(a)
}
no quiero para marcar f
implícita en la firma de myMethod desde Foos no están implícitos en el contexto que se está utilizando myMethod. Mi pregunta: ¿hay una manera más idiomática (o concisa) para lograr este efecto que usar una variable temporal?
En este sencillo ejemplo, probablemente sea más fácil pasar 'f' explícitamente que utilizar implícitos, pero supongo que su código real es lo suficientemente complejo para que lo implícito valga la pena. En ese caso, creo que su solución de declarar un 'valor implícito' dentro del método es la mejor manera de hacerlo si desea evitar declarar el parámetro como implícito en la firma del método. – DaoWen
@DaoWen Realmente debería enviar su comentario como respuesta. –
@ Aaron Novstrup - Sí, mirando las otras respuestas que probablemente debería tener. Todavía soy bastante nuevo aquí, por lo que todavía me cuesta decidir qué cae en la categoría de respuesta vs comentario. – DaoWen