Как получить доступ к элементу в массиве через командную строку в ruby? - PullRequest
0 голосов
/ 14 января 2019

Учитывая простой код в файле test.rb:

def todo_list(todo_selector)
    library = ["Get a cat", "Get a dog", "Build a fighting ring"]
    puts "Your current step in todo-list is:\n#{library[todo_selector]}"
end

ARGV.each { |todo| todo_list(todo_selector) }

Как я могу вызвать этот метод с индексом через командную строку?
Обычно я бы использовал test.rb 1, но я получаю эту ошибку:

Traceback (most recent call last):
    2: from test.rb:17:in `<main>'
    1: from test.rb:17:in `each'
test.rb:17:in `block in <main>': undefined local variable or method `todo_selector' for main:Object (NameError)
Did you mean?  todo_list

Что я делаю не так?

1 Ответ

0 голосов
/ 14 января 2019

Попробуйте этот способ для одного элемента, постарайтесь преобразовать String в Integer, чтобы получить доступ к Array по индексу.

selector = ARGV[0].to_i
todo_list(selector)

Для массива аргументов: ARGV.each{ |i| todo_list(i.to_i) }

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