【问题标题】:Scala trait syntaxScala 特征语法
【发布时间】:2013-06-14 00:41:41
【问题描述】:

我正在查看 Scalatra 的文档,发现一个有趣的 sn-p 语法代码我还没有看到:http://www.scalatra.org/2.2/guides/persistence/introduction.html

具体来说就是这个:

trait DatabaseSessionSupport { this: ScalatraBase =>
  import DatabaseSessionSupport._

除了this: ScalatraBase => 段之外,这里的一切都是有意义的。它在这里有什么意义?它是特定于下面的导入还是整个特征?

【问题讨论】:

    标签: scala scalatra


    【解决方案1】:

    这称为“自类型注释”,它要求在可实例化类中对trait DatabaseSessionSupport 的任何使用都必须伴随(“混合”)与ScalatraBase 一致的类型。这个具体的代码我没有看,但很可能是使用了所谓的“蛋糕模式”。

    您可以在 Stack Overflow、各种博客和 Odersky 等人的经典论文中找到许多关于此概念的处理方法。人。标题为“Scalable Component Abstractions。”

    【讨论】:

    • 很好的答案,非常有帮助。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多