代码之家  ›  专栏  ›  技术社区  ›  SwiftMango

扩展“function”类型和不扩展有什么区别?

  •  1
  • SwiftMango  · 技术社区  · 8 年前

    我有一个功能对象,比如:

    object Doubler {
      def apply(v: Int) = v*2
    }
    

    当我这样做的时候它就工作了 Doubler(1)

    我也可以用lambda类型扩展它:

    object Doubler extends (Int=>Int) {...}
    

    有什么区别吗?背后有什么理由吗?

    2 回复  |  直到 8 年前
        1
  •  3
  •   sepp2k    8 年前

    Doubler Int => Int

    val f: Int=>Int = Doubler someList.map(Doubler)

        2
  •  0
  •   Andrey Tyukin    8 年前

    Int => Int

    (Int => Int) Function1[Int, Int]