основана на типе Iterable, который ничего не знает про размер коллекции. И большинство extensions тоже написаны для Iterable. So, by design. Могу предположить, что в основе решения о дизайне лежала "юзабительность" апи для повседневных нужд, чем ~хайлоад, который всегда варится по своему рецепту исходя из контекста
как понимать какие методы включать в библиотеку, а какие нет? каждый метод + размер зависимости и увеличение общей сложности апи. Так что скорей нужно веское обоснование зачем включать, а не почему не включать. Тут же была придумана стройная иерархия с мощным базовым классом, на единственном методе которого можно запилить дешево столько разных функций
написать несколько нужных экстеншенов скорей всего будет немного проще, чем делать свой stdlib
Да, но 1. Часто проверяется, не Collection ли наш Iterable, чтобы узнать размер. Ну и те же эестеншены есть для массивов, включая все примитивные. 2. Судя по размеру stdlib, на него никто не смотрит) кому важно, у того ProGuard. 3. Для написания эффективных реализаций не существует места лучше, чем stdlib. Все «свои» экстеншены придётся уже импортировать.
Обсуждают сегодня