Scala特征语法

Scala特征语法,scala,scalatra,Scala,Scalatra,我正在查看Scalatra的文档,注意到一段有趣的语法代码,我还没有在上面看到: 具体来说,是这样的: trait DatabaseSessionSupport { this: ScalatraBase => import DatabaseSessionSupport._ 除了this:ScalatraBase=>段之外,这里的一切都有意义。它在这里有什么意义?它是针对下面的导入还是针对整个特征 这被称为“自类型注释”,它要求在可实例化类中使用特征数据库会话支持时必须伴随(“混入”)

我正在查看Scalatra的文档,注意到一段有趣的语法代码,我还没有在上面看到:

具体来说,是这样的:

trait DatabaseSessionSupport { this: ScalatraBase =>
  import DatabaseSessionSupport._
除了
this:ScalatraBase=>
段之外,这里的一切都有意义。它在这里有什么意义?它是针对下面的导入还是针对整个特征

这被称为“自类型注释”,它要求在可实例化类中使用
特征数据库会话支持
时必须伴随(“混入”)与
ScalatraBase
一致的类型。我没有看过这个特定的代码,但它很可能使用了所谓的“蛋糕模式”


你可以在Stack Overflow、各种博客以及Odersky等人的一篇名为“.”的经典论文中找到许多关于这个概念的处理方法。

伟大的答案,帮助很大。非常感谢。