[A => B]在scala中的类型构造函数中的含义是什么

时间:2015-10-09 08:01:23

标签: scala

给出一些带有类型参数T

的简单类容器
case class Container[T](value:T)

现在定义一个方法

def test[A,B](b:Container[A=>B]) = {

}

[A => B] 是什么意思?它是一个函数类型的绑定或一些kinde吗?

3 个答案:

答案 0 :(得分:4)

这是一个功能。这意味着T是一个函数,它将类型A作为输入并返回类型B的值。

例如,

val c = Container[String=>Int]( s => s.length() )
c.value("abc")   // returns 3, and is the equivalent to c.value.apply("abc")
                 // which in turn calls the function s => s.length()
                 // and so returns "abc".length()

答案 1 :(得分:1)

类型[A=>B]是一个函数,它接受A类型的输入并生成B类型的输出。

在构造函数的上下文中,它意味着您将函数作为参数传递给构造函数。

答案 2 :(得分:1)

旁注,例如函数值

val fv = (v: Int) => v + v

在运行时创建一个函数对象实例,并扩展Function1 trait,其中包括apply方法,如前所述。等价地,

val fv = new Function1[Int, Int] {
  def apply(v: Int) = v + v
}