Переменные Аргументы с символом - PullRequest
1 голос
/ 26 марта 2011

Я обычно изучаю Ruby в то время. Я хочу создать метод аргумента переменной длины, вроде Ruby Rails, проверяет метод. Это было бы как:

my_method(var1, *list)

И я бы хотел назвать это так:

my_method(whatever_var, :values => ['1','2','3'])

Теперь мой вопрос: как обрабатываются значения? Я вижу это в validates (в Rails), но я не очень понимаю механику. Это теперь символ, который указывает на массив? И как это должно быть обработано внутри моей функции?

1 Ответ

2 голосов
/ 26 марта 2011

В качестве последнего аргумента вы можете использовать хеш (популярный язык Ruby), в котором вы можете хранить значения со списками, строками, чем угодно:

def my_method(var1, options={})
  options[:values] ||= []
  options[:names] ||= []

  #code
end

Оттуда вы можете вызывать:

my_method(whatever_arg, :values => ['1', '2', '3', '4'], :names => ['mike'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...