给出一些带有类型参数T
的简单类容器case class Container[T](value:T)
现在定义一个方法
def test[A,B](b:Container[A=>B]) = {
}
[A => B] 是什么意思?它是一个函数类型的绑定或一些kinde吗?
答案 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
}