代码之家  ›  专栏  ›  技术社区  ›  chen

Java拥有闭包之后的Scala优势

  •  23
  • chen  · 技术社区  · 14 年前

    有人能详细说明一下有什么好处吗?

    3 回复  |  直到 14 年前
        1
  •  70
  •   Tom Crockett    7 年前

    除了闭包(Java看起来没有那么接近闭包),下面是Scala中Java所缺少的特性列表。我将省略这里的库,集中讨论语言本身的特性。这是不全面的任何手段,但我认为它包含了大票项目。

    • 隐式参数/转换
    • 类型推断(部分)
    • Higher-kinded types (类型构造函数上的抽象)
    • 一元的 for
    • 差异注释
    • 与行为(特征)的接口
    • 默认参数和命名参数
    • 统一方法和运算符(方法可以用作中缀运算符,运算符可以重载,因为它们只是方法)
    • 统一类型层次结构;没有基元类型
    • 属性而不是getter和setter
    • 第一类不可变引用( val 声明和声明一样容易 var 秒)
    • 按名称(lazy)术语(也许Java闭包会使其相当容易表达)
    • 抽象类型
    • 类型别名
    • 自我类型
    • 路径相关类型
    • 结构类型
    • ascription ,区别于类型 铸造
    • 具体化泛型( manifests )
    • Delimited continuations

    • 类型类(通过隐式参数和更高类型)
    • “这个” Pimp My Library"
    • 内部DSL(通过运算符重载和中缀方法)
    • 生成器、协程、自定义控制结构(通过分隔的延续)
    • 类型级编程(通过更高种类和抽象类型)
    • Cake Pattern )

    最后,我要提到Scala有一个REPL(read-evaluate-print循环)--这并不是语言本身的一个特性,但是拥有它非常好!

        2
  •  8
  •   Vasil Remeniuk    14 年前

        3
  •  7
  •   Stephen C    14 年前