/ / Jak napisać niejawną konwersję funkcji dla wywołania mapy w Scala - scala

Jak napisać niejawną Konwersję funkcji dla wywołania mapy w Scala - scala

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 № 1

Myś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?