Как я могу использовать оператор if-else со списком аргументов переменной длины? - PullRequest
0 голосов
/ 05 марта 2020

Мой метод использует список аргументов переменной длины, и я хотел бы проверить каждую переменную с помощью оператора if-else. Это возможно? Я не уверен, что мой синтаксис правильный.

def buy_choice(*choice)
  loop do
    input = gets.chomp
    if input == choice
      puts "You purchased #{choice}."
      break
    else
      puts "Input '#{input}' was not a valid choice."
    end
  end
end

Поэтому, если я использую buy_choice("sailboat", "motorboat"), input из "sailboat" или "motorboat" должно быть успешным.

1 Ответ

2 голосов
/ 05 марта 2020

использовать Array # include? чтобы найти, есть ли объект в списке

def buy_choice(*choices)
  loop do
    print 'Enter what did you buy:'
    input = gets.chomp
    if choices.include? input
      puts "You purchased #{input}."
      break
    else
      puts "Input '#{input}' was not a valid choice."
    end
  end
end
buy_choice 'abc', 'def'
Enter what did you buy:abc1
Input 'abc1' was not a valid choice.
Enter what did you buy:def1
Input 'def1' was not a valid choice.
Enter what did you buy:abc
You purchased abc.
 => nil 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...