Я что-то пропустил в документации Array? У меня есть массив, который содержит до одного объекта, удовлетворяющего определенному критерию. Я бы хотел эффективно найти этот объект. Лучшая идея, которую я имею в документах, такова:
candidates = my_array.select { |e| e.satisfies_condition? }
found_it = candidates.first if !candidates.empty?
Но я неудовлетворен по двум причинам: (1) этот выбор заставил меня пройти весь массив, хотя мы могли бы заручиться после первого попадания, и (2) мне понадобилась строка кода (с условием) до сгладить кандидатов. Обе операции расточительны с предузнанием, что 0 или 1 удовлетворяют объектам.
Мне хотелось бы что-то типа:
array.find_first(block)
→ отвечает nil или первый объект, для которого блок оценивает значение true, заканчивая обход этого объекта.
Должен ли я написать это сам? Все эти замечательные методы в Array заставляют меня думать об этом, и я просто не вижу его.
Спасибо заранее, Dan