Come faccio a scrivere una conversione implicita per il codice seguente (semplificato)? Capisco che devi convertirti (Int) => B
a (String) => B
.
List(1, 2, 3).map { s: String => "_" + s }
// expected: List("_1", "_2", "_3")
risposte:
4 per risposta № 1Penso che la risposta di Simon funzioni meglio. Nel caso in cui tu voglia ancora fare la conversione implicita, il seguente dovrebbe fare il trucco.
implicit def convertFun[B](fun: String => B): (Int => B) = {
x: Int => fun(x.toString)
}
0 per risposta № 2
In realtà non è necessario, basta farlo come;
List(1, 2, 3) map { i: Int => "_" + i }
0 per risposta № 3
for(s <- List(1, 2, 3)) yield "_" + s
E 'questo quello che stai cercando?