[英]What does [A=>B] mean in a type constructor in scala
给定一些带有类型参数T的简单类Container
case class Container[T](value:T)
现在定义一个方法
def test[A,B](b:Container[A=>B]) = {
}
这[A => B]是什么意思? 它是函数类型的绑定还是某种类型?
它是一个功能。 这意味着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()
类型[A=>B]
是一个接受类型A
输入并产生类型B
输出的函数。
在构造函数的上下文中,这意味着您要将函数作为参数传递给构造函数。
旁注,例如函数值
val fv = (v: Int) => v + v
如前所述,在运行时创建一个函数对象实例,并扩展Function1
特性,其中包括apply
方法。 等效地,
val fv = new Function1[Int, Int] {
def apply(v: Int) = v + v
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.