如何在Scala中为地图调用编写隐式函数转换

时间:2015-11-04 10:27:19

标签: scala

如何为下面的代码(简化)编写隐式转换?我们了解您需要将(Int) => B转换为(String) => B

List(1, 2, 3).map { s: String => "_" + s }
// expected: List("_1", "_2", "_3")

3 个答案:

答案 0 :(得分:4)

我认为西蒙的回答效果最好。如果您仍想进行隐式转换,则应遵循以下规则。

implicit def convertFun[B](fun: String => B): (Int => B) = {
  x: Int => fun(x.toString)
}

答案 1 :(得分:0)

其实你不需要,只是这样做;

List(1, 2, 3) map { i: Int => "_" + i }

答案 2 :(得分:0)

 for(s <- List(1, 2, 3)) yield "_" + s 

这是你要找的吗?