Jak napisać niejawną konwersję poniższego kodu (uproszczonego)? Rozumiem, że musisz się przekonać (Int) => B
do (String) => B
.
List(1, 2, 3).map { s: String => "_" + s }
// expected: List("_1", "_2", "_3")
Odpowiedzi:
4 dla odpowiedzi № 1Myślę, że odpowiedź Simona działa najlepiej. W przypadku, gdy nadal chcesz wykonać niejawną konwersję, poniższe rozwiązanie powinno zadziałać.
implicit def convertFun[B](fun: String => B): (Int => B) = {
x: Int => fun(x.toString)
}
0 dla odpowiedzi nr 2
Właściwie nie potrzebujesz, po prostu zrób to tak;
List(1, 2, 3) map { i: Int => "_" + i }
0 dla odpowiedzi № 3
for(s <- List(1, 2, 3)) yield "_" + s
Czy tego właśnie szukasz?