繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM