Хотя в вашем объяснении может быть больше ясности, я полагаю, вы говорите, что у вас есть массив из любого числа нулей и нуля или одного 1
. И, если к массиву, уже содержащему его, добавляется 1
, чтобы вызвать ошибку.
Если я понимаю, что вы пытаетесь сделать правильно, это не сложно. Все, что вам нужно сделать, это выбрать все элементы, равные 1
, и выдать ошибку, если размер результата больше, чем 1
:
raise 'Too many ones' if array_example.select { |e| 1 == e }.size > 1
Это повысит значение по умолчанию RuntimeError
. Конечно, вы можете вызвать любую ошибку, которая вам нравится (и вам, вероятно, следует создать собственную ошибку для этого, если вы собираетесь обрабатывать ее, используя rescue
).
Редактировать: предложение Кэри о Array#count
действительно более прямой. Итак:
raise 'Too many ones' if array_example.count(1) > 1