Ho un metodo che chiama alcuni altri metodi che fanno uso di un implicito di tipo Foo
. Mi piacerebbe renderlo implicito in Foo. Questo è come lo faccio:Contrassegno di un argomento implicito all'interno di un metodo
def myMethod(a: Int, f: Foo) = {
implicit val implicitF = f;
somethingThatNeedsFoo(a)
}
Non voglio segnare f
implicita nella firma del mioMetodo poiché Foos non sono implicite nel contesto che mioMetodo è in uso. La mia domanda: esiste un modo più idiomatico (o conciso) per ottenere questo effetto rispetto all'utilizzo di una variabile temporanea?
In questo semplice esempio, è probabilmente più semplice passare 'f' in modo esplicito piuttosto che usare impliciti, ma sto assumendo che il tuo codice reale sia abbastanza complesso da rendere l'implicito utile. In questo caso, penso che la soluzione per dichiarare un valore implicito all'interno del metodo sia il modo migliore per farlo se si vuole evitare di dichiarare il parametro stesso come implicito nella firma del metodo. – DaoWen
@DaoDao Dovresti davvero inviare il tuo commento come risposta. –
@ Aaron Novstrup - Sì, guardando le altre risposte che probabilmente dovrei avere. Sono ancora piuttosto nuovo qui, quindi ho ancora difficoltà a decidere cosa cade nella categoria di risposta vs commento. – DaoWen