Como escrevo uma conversão implícita para o código abaixo (simplificado)? Eu entendo que você precisa converter (Int) => B
para (String) => B
.
List(1, 2, 3).map { s: String => "_" + s }
// expected: List("_1", "_2", "_3")
Respostas:
4 para resposta № 1Eu acho que a resposta do Simon funciona melhor. Caso você ainda queira fazer a conversão implícita, o seguinte deve fazer o truque.
implicit def convertFun[B](fun: String => B): (Int => B) = {
x: Int => fun(x.toString)
}
0 para resposta № 2
Na verdade você não precisa, apenas faça como;
List(1, 2, 3) map { i: Int => "_" + i }
0 para resposta № 3
for(s <- List(1, 2, 3)) yield "_" + s
É isso que você está procurando?