为了账号安全,请及时绑定邮箱和手机立即绑定

Scala的隐藏功能

Scala的隐藏功能

BIG阳 2019-08-14 16:12:02
Scala的隐藏功能每个Scala开发人员都应该注意Scala的隐藏功能是什么?请回答一个隐藏的功能。
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

结构类型定义 - 即通过它支持的方法描述的类型。例如:

object Closer {
    def using(closeable: { def close(): Unit }, f: => Unit) {
      try { 
        f      } finally { closeable.close }
    }}

请注意,除了具有方法之外,未定义参数的类型closeableclose


查看完整回答
反对 回复 2019-08-14
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

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


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 529 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信