J'ai un problème dans l'ordre de scala implicite, quelqu'un peut-il m'aider? Ci-dessous quelques définitions de classes, et ce que je veux faire est de comparer Leaf et Node à travers sa 'popularité'.Scala commander des conversions implicites?
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
pour exampel:
val a = Leaf("a",10)
val b = Leaf("b",20)
val c = Node(30,a,b)
si l'on veut comparer a et b par sa popularité, il est facile de le faire en ajoutant les transformations implicites, comme:
implicit val leavesOrder = new Ordering[Leaf] {
override def compare(x: Leaf, y: Leaf) =
implicitly[Ordering[Double]].compare(x.popularity, y.popularity)
}
mais si je veux comparer a et c à travers sa popularité, je suis confus à ce sujet et je ne sais pas comment ajouter les transformations implicites?
Quelqu'un peut-il m'aider?
Votre question est un peu vague. Votre titre parle d'ordre implicite mais vous semblez rechercher des conversions implicites? –
Vous pourriez créer un 'nouvel ordre [arbre]' –
Désolé à ce sujet, je vais modifier la tuile. @ YuvalItzchakov – Yang