Какова лучшая практика в Eiffel для возврата объекта из функции, если он не найден. Я видел, что многие коллекции, такие как ARRAY, например, основывают поведение not found на предварительном условии, например, или другой функции.
Многие языки основывают свою политику на возврате Void (или null), когда объект не найден. В Eiffel это означало бы, что в результате получится съемный объект?
Нулевая политика
item_at_index (index: INTEGER): detachable FOO
do
if bar_collection.valid_index(i) then
Result := bar_collection.item_at(i)
else
Result := Void
end
end
Никогда не обнуляйте политику
item_at_index (index: INTEGER): detachable FOO
require
bar_collection.valid_index(i)
do
Result := bar_collection.item_at(i)
end