此语法在 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]]
你是对的,这是一个泛型声明 H
是 SealedHolder[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
}
我刚开始研究一个特征,然后我发现我不理解这个语法
trait Holder[H <: service.SealedHolder[H]] {
val personId: String //ID.03
}
我想这可能是一个通用声明,但仍然对这种 scala 语法感到困惑 Holder[H <: service.SealedHolder[H]]
你是对的,这是一个泛型声明 H
是 SealedHolder[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
}