В чем разница между sumOf () и sumBy () в Kotlin 1.4? - PullRequest
2 голосов
/ 10 июля 2020

Чем новая функция sumOf() в Kotlin 1.4 отличается от функций sumBy() или sumByDouble()?

Ответы [ 2 ]

1 голос
/ 11 июля 2020

TL; DR : нет никакой разницы, и в конечном итоге sumBy / sumByDouble может быть устаревшим в пользу единственной операции sumOf.

sumOf операция имеет перегрузки для разных numeri c типов, возвращаемых функцией селектора. Это было то, что раньше было невозможно со старым средством вывода типов, поэтому для обработки различных типов numeri c требовалось иметь функции с разными именами: sumBy для суммирования целых чисел, sumByDouble для суммирования двойных чисел и т. Д. c.

Когда наконец появился новый вывод с экспериментальной поддержкой разрешения перегрузки с помощью селектора лямбда-типа, мы решили не перегружать существующую функцию sumBy, а ввести новую операцию sumOf. Таким образом, у него меньше шансов что-то сломать и он более согласован в именовании с новыми операциями list.minOf/maxOf { selector }.

0 голосов
/ 10 июля 2020

Как Kotlin 1.4 журнал изменений утверждает:

... он позволяет обрабатывать суммы разных типов одинаково . А именно, sumOf производит суммы типов Int, Long, Double, ... [в зависимости от типа возврата данной лямбды].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...