ruby, оценка нескольких условий в массиве - PullRequest
0 голосов
/ 15 июля 2010

Так что, возможно, у меня все это неправильно, но я уверен, что есть способ сделать это, скажем, у меня есть оператор if, который я хочу вернуть true, если все условия в массиве оцениваются как истина.

скажи, что у меня есть это:

def real_visitor?(location, request, params)

  valid_location = [
    params['referrer'] == 'us',
    params['bot'] != 'googlebot',
    5 + 5 == 10 
  ]

  if valid_location
    return true
  else
    return false
  end
end

Как бы я оценил каждое из условий в массиве valid_location, некоторые из этих условий в этом массиве просто псевдокод.

1 Ответ

4 голосов
/ 15 июля 2010

Используйте Array#any? или Array#all?. Это все равно что поместить оператор || или && между всеми вашими условиями, но он не выполняет оценку короткого замыкания, что иногда полезно.

return valid_location.all?

Кстати, вам не нужно ключевое слово return. Я бы оставил это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...