特殊字符>:和<:scala中的含义?

时间:2014-04-27 06:20:48

标签: scala scala-2.10

我使用scala 2.10:

有没有人知道什么意思:

输入Session>:Null<:SessionDef

我不懂字符>:和<:在这里

整个代码是:

trait DatabaseComponent { self =>

type Session >: Null <: SessionDef

}

1 个答案:

答案 0 :(得分:0)

type关键字定义了一些抽象类型。特定的DatabaseComponent子类(具体实现)可以将此类型实现为具体类。

>:<:是抽象类型Session上的类型范围。示例中的那些意味着抽象类型成员Sessionnull - 能够并且它是某种其他类型SessionDef的子类型。

上限SessionDef<:)在这里是因为:

  • DatabaseComponent的实施只能定义Session类型,以便它们是SessionDef
  • 的子类型
  • 如果DatabaseComponent中的某些方法碰巧返回Session类型的对象,则您不会知道其确切的实现,但您会知道您可以调用{{{}}中存在的任何方法1}}在它上面

下限SessionDefNull)就在这里,因为它允许您初始化>:类型Session的变量。

详细了解abstract type members heretype bounds here