Я только начал с Kotlin, и для практики я хочу прочитать некоторые вещи из аргументов программы попарно.
Вход в программу следующий: Алиса 10 Боб 20 ...
У меня есть текущая версия, которая разумно работает, разбивая входные данные и попарно итерируя
for((name, age) in args.asIterable().chunked(2))
Однако, если я передам неравное число аргументов, последний список будет содержать только один элемент, и назначение завершится неудачно сIndexOutOfBoundsException.
Я мог бы сделать эту работу, добавив фильтр в разделенный список, который выбрасывает последний список, если он имеет неправильный размер:
for((name, age) in args.asIterable().chunked(2).filter { it -> it.size==2 })
Однако у меня есть некоторыепроблемы с этим
- У меня длина списка указана дважды
- С фильтром он выглядит намного менее читаемым и элегантным
- Фильтр должен проходитьрелевантен весь список, но только последний подсписок
Является ли хорошим решением получение чанкования для возврата только целых чанков или безопасного и элегантногоAnt способ читать только полные подсписки?