Ответ
G_Z 18.10 21:31
/ 18.10 21:44
В моём понимании
each не должен ничего пропускать, на то он и каждый.
Если бы назывался
foreachdef или
foreachitem — вопросов нет, а в текущем виде сбивает с толку.
Аналогичные методы таблицы и хеша не пропускают же пустые строки или элементы.
Но у меня самому себе есть и контраргумент: перебор с пропуском дырок — наиболее частая операция с массивом, и, несмотря на то, что
for короче,
foreach привычнее по другим классам.
Моя логика такова: если упор делается на совместимости массива с другими классами, а дырочность редкоиспользуема, то лучше иметь интерфейс, близкий другим классам, а если массив выделяется своим поведением, то лучше свой интерфейс.
Как понимаю, Парсер идёт по первому пути.