2016-03-23 4 views
1

я могу получить сравнить метод работы ДО Tuple9 как следующее:Scala Tuple10 неявное упорядочение не работает

import scala.math.Ordered.orderingToOrdered 
    (1,2,"ab",4,5,6.0,7l,"de",1.0) compare (1,2,"ab",4,5,6.0,7l,"de",1.0) 

Но с Tuple10 я получаю компиляции ошибка:

import scala.math.Ordered.orderingToOrdered 
    (1,2,"ab",4,5,6.0,7l,"de",1.0,2) compare (1,2,"ab",4,5,6.0,7l,"de",1.0,2) // >> compile error: value compare is not a member of (Int, Int, String, Int, Int, Double, Long, String, Double, Int) 

Я попробовал альтернативный путь, но это также дает неявная ошибка:

implicitly[Ordering[Tuple10[Int, Int, String, Int, Int, Double, Long, String, Double, Double]]].compare((1,2,"ab",4,5,6.0,7l,"de",1.0,4), (1,2,"ab",4,5,6.0,7l,"de",1.0,4)) 

compiler error: 
No implicit Ordering defined for (Int, Int, String, Int, Int, Double, Long, String, Double, Double). 
not enough arguments for method implicitly: (implicit e: Ordering[(Int, Int, String, Int, Int, Double, Long, String, Double, Double)])Ordering[(Int, Int, String, Int, Int, Double, Long, String, Double, Double)]. Unspecified value parameter e. 

Похоже, заказ Заказ выполняется только до Tuple9. Поправьте меня, если я ошибаюсь.

ответ

2

Как вы можете видеть из source code, вы считаете, что это верно только для Tuple9. Но после того, как вы увидели шаблон на каждой итерации, вы сможете копировать и расширять его по мере необходимости.

+0

спасибо. что было бы лучше всего добавить такое расширение. Я знаю, что в пределах его возможностей доступен, но чтобы сделать его более глобальным, лучше ли его помещать в какой-то объект утилиты и импортировать неявные? – nir