猿问

Scala的隐藏功能

Scala的隐藏功能

每个Scala开发人员都应该注意Scala的隐藏功能是什么?

请回答一个隐藏的功能。


BIG阳
浏览 531回答 3
3回答

倚天杖

结构类型定义 - 即通过它支持的方法描述的类型。例如:object Closer {     def using(closeable: { def close(): Unit }, f: => Unit) {       try {          f      } finally { closeable.close }     }}请注意,除了具有方法之外,未定义参数的类型closeableclose

小怪兽爱吃肉

Type-Constructor Polymorphism(又名更高级的类型)例如,如果没有此功能,您可以表达在列表上映射函数以返回另一个列表,或在树上映射函数以返回另一个树的想法。但你不能表达这种想法通常不高于种。使用更高类型,您可以捕获任何使用其他类型参数化的类型的想法。一个带有一个参数的类型构造函数被认为是实物(*->*)。例如,List。返回另一个类型构造函数的类型构造函数被认为是实物(*->*->*)。例如,Function1。但是在Scala中,我们有更高的类型,因此我们可以使用其他类型构造函数进行参数化的类型构造函数。所以他们就像((*->*)->*)。例如:trait Functor[F[_]] {   def fmap[A, B](f: A => B, fa: F[A]): F[B]}现在,如果你有Functor[List],你可以映射列表。如果你有Functor[Tree],你可以映射树木。但更重要的是,如果你有Functor[A] 任何A类(*->*),你可以映射一个函数A。
随时随地看视频慕课网APP
我要回答