Я играю с алгоритмами сортировки. Мне было любопытно, были ли встроенные функции сравнения для примитивных типов. Я знаю, что очень просто ввести (x: Int, y: Int) => x - y
. Я просто хочу знать, есть ли встроенное сравнение, поэтому я не изобретаю колесо. Вещи, очевидно, усложняются, когда дело доходит до строк (чувствительных к регистру и чувствительных к культуре). Я был бы удивлен, если бы не было чего-то уже встроенного.Получение функций сравнения в Scala
1
A
ответ
5
Если тип A
имеет Ordering
экземпляр, вы можете получить, написав Ordering[A]
и Ordering
compare
есть метод, который вы можете ЕТА расширить функции, которую вы ищете:
scala> Ordering[Int].compare _
res0: (Int, Int) => Int = <function2>
As особый случай для примитивов (и несколько других типов), вы можете обратиться к экземпляру непосредственно:
scala> Ordering.Int.compare _
res1: (Int, Int) => Int = <function2>
и в более общем плане, если у вас есть класс типов F
и A
имеет экземпляр, вы можете получить этот экземпляр, написав implicitly[F[A]]
, так что следующее работает:
scala> implicitly[Ordering[Int]].compare _
res2: (Int, Int) => Int = <function2>
Я бы использовать первый из этих вариантов, однако.
Смежные вопросы
- 1. Цепные сравнения в Scala
- 2. Scala типа сравнения: Заказ
- 3. Сравнение сравнения контуров Scala
- 4. Ошибка сравнения Scala
- 5. Переопределения выделанных функций в Scala
- 6. Вызов карриных функций в Scala?
- 7. Последовательность подобных функций в Scala
- 8. Вызов внутренних функций в Scala
- 9. Scala синтаксис вложенных функций
- 10. Список scala "глобальных" функций?
- 11. SCALA Создание функций Синтаксис
- 12. scala список анонимных функций
- 13. Дата сравнения получение погрешность
- 14. Равенство функций в Scala, функции объектов в Scala?
- 15. Scala: понимание синтаксиса анонимных функций
- 16. Scala и запись картографических функций
- 17. Scala: Разница между декларациями функций
- 18. Комбинация функций Scala с генериками
- 19. Scala применяется список функций объекта
- 20. Получение функций автозагрузки в камне
- 21. Получение List.Join для сравнения правильно
- 22. Получение переменной javascript в Scala
- 23. Получение поля в Scala json4s
- 24. Получение имен функций программно
- 25. Функция сравнения строк для общих функций C
- 26. Реализация LINQ-подобных функций в Scala
- 27. Отправка функций для сложения в Scala
- 28. Scala - Выполнение двух функций в параллельных
- 29. Методы подъема значений функций в Scala
- 30. Что такое супертип всех функций в Scala?
'_ - _' еще проще, или, если вывод типа недоступен,' (_: Int) - (_: Int) '. –