나는 스칼라 순서에 암시 적으로 문제가있다. 누군가 나를 도울 수 있는가?스칼라 암시 적 변환을 주문 하시겠습니까?
다음은 몇 가지 클래스 정의입니다. 내가하고 싶은 것은 Leaf와 Node를 'popularity'를 통해 비교하는 것입니다. exampel에 대한
class Tree
case class EmptyTree() extends Tree
case class Leaf(label: String, popularity: Double) extends Tree
case class Node(popularity: Double, left: Tree, right: Tree) extends Tree
는 :
val a = Leaf("a",10)
val b = Leaf("b",20)
val c = Node(30,a,b)
우리가 인기의를 통해 A와 B를 비교하려는 경우, 그 같은 암시 적 변환을 추가 할 쉽게 :
implicit val leavesOrder = new Ordering[Leaf] {
override def compare(x: Leaf, y: Leaf) =
implicitly[Ordering[Double]].compare(x.popularity, y.popularity)
}
그러나 만약 내가 그것을 통해 c를 비교하기를 원한다면 나는 혼란스럽고 암묵적인 변환을 추가하는 방법을 모른다.
나를 도와 줄 사람이 있습니까?
귀하의 질문은 다소 모호합니다. 귀하의 제목은 암시 적 질서에 대해 이야기하지만 암시 적 전환을 찾고있는 것처럼 보입니까? –
당신은'새로운 주문 [나무] '를 만들 수 있습니다 –
타일을 수정합니다. @ YuvalItzchakov – Yang