此语法在 scala [H <: Service[H]] 中意味着什么

What does this syntax means in scala [H <: Service[H]]

我刚开始研究一个特征,然后我发现我不理解这个语法

trait Holder[H <: service.SealedHolder[H]] {
    val personId: String //ID.03
}

我想这可能是一个通用声明,但仍然对这种 scala 语法感到困惑 Holder[H <: service.SealedHolder[H]]

你是对的,这是一个泛型声明 HSealedHolder[H] 的子类型。

您可以阅读有关类型界限的内容 https://apiumhub.com/tech-blog-barcelona/scala-type-bounds/ 和 F 界多态性 https://tpolecat.github.io/2015/04/29/f-bounds.html

例如 F-bounds 与特征一起使用 Ordered https://www.scala-lang.org/api/2.12.2/scala/math/Ordered.html

case class OrderedClass(n:Int) extends Ordered[OrderedClass] {
  def compare(that: OrderedClass) = this.n - that.n
}