получить значение массива для цикла - PullRequest
0 голосов
/ 07 февраля 2012

у меня есть массив

numbers = [ 1, 2, 3, 4, 5, 6 ]

У меня есть переменная:

number = 4

Я хочу, чтобы цикл или каждый блок возвращали ложь, если в массиве не существует числа 4 для этого случая.

numbers.each do |number_loop| 
    return false unless number_loop == number   
end

Но я получаю ошибку:

LocalJumpError: неожиданное возвращение из (irb): 25: в блоке в irb_binding

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Если вы не делаете что-то еще в блоке, который вы скрыли от публикации здесь, почему бы вам просто не сделать:

return false if numbers.include? number

По той причине, что вы получаете LocalJumpError там: если ваш код не находится в методе, тогда нет ничего, к чему можно вернуться (или, говоря иначе, ничего: перейти обратно).В этом случае вы, вероятно, пытаетесь установить переменную, а не возвращать, и вам нужно сделать:

is_included = numbers.include? number
0 голосов
/ 07 февраля 2012

Как уже упоминалось, вы должны использовать #include? для проверки на включение. Также взгляните на #any? и #all?, которые можно использовать для проверки того, соответствуют ли какие-либо или все элементы в коллекции определенному блоку.

0 голосов
/ 07 февраля 2012

Попробуйте с:

 numbers.include?(number)

Это должно работать.

...