В Ruby ARGV
— це вбудований масив, який використовується для зберігання аргументів командного рядка, переданих при запуску скрипта. Його ім’я розшифровується як “Argument Vector”.
Нижче представлені основні моменти про ARGV
, які варто знати.
1. Масив аргументів
ARGV
містить усі аргументи, передані в командному рядку при запуску скрипта. Перший елемент цього масиву — це перший аргумент (без урахування імені самого скрипта, яке можна отримати через __FILE__
).
Приклад:
# example_script.rb
puts "Arguments: #{ARGV.inspect}"
Запустимо скрипт:
ruby example_script.rb arg1 arg2 arg3
Результат:
Arguments: ["arg1", "arg2", "arg3"]
2. Тип даних
Усі елементи в ARGV
представлені як строки (String
), незалежно від того, який тип ви ввели в командному рядку.
Приклад:
# example_script.rb
puts ARGV.map(&:class)
Запуск:
ruby example_script.rb 42 true
Результат:
[String, String]
3. Доступ до елементів
Як і будь-який масив, ви можете звертатися до елементів ARGV
за індексами:
puts ARGV[0] # перший аргумент
puts ARGV[1] # другий аргумент
4. Обробка аргументів
Оскільки всі аргументи представлені як строки, їх потрібно явно перетворювати до потрібного типу (наприклад, у число або булеве значення):
num = ARGV[0].to_i
puts num * 2
Запуск:
ruby example_script.rb 5
Результат:
10
5. Перевірка наявності аргументів
Щоб перевірити, чи були передані аргументи:
if ARGV.empty?
puts "No arguments provided"
else
puts "Arguments: #{ARGV.join(', ')}"
end
6. Зручна обробка з OptionParser
Ruby пропонує модуль OptionParser
для складнішої обробки аргументів командного рядка, з можливістю задавати прапорці, значення за замовчуванням тощо.
Приклад з OptionParser:
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-nNAME", "--name=NAME", "Your name") do |name|
options[:name] = name
end
opts.on("-aAGE", "--age=AGE", "Your age") do |age|
options[:age] = age.to_i
end
end.parse!
puts "Hello, #{options[:name]}! You are #{options[:age]} years old."
Запуск:
ruby example_script.rb -nJohn -a30
Результат:
Hello, John! You are 30 years old.
7. Особливості
- Якщо скрипт запускається без аргументів,
ARGV
буде порожнім масивом ([]
). - Ви можете модифікувати
ARGV
, видаляючи або додаючи елементи, як у звичайному масиві.
Видалення елементів:
ARGV.shift # видалить перший аргумент
Це базові принципи роботи з ARGV
в Ruby. Для складнішої роботи можна комбінувати його з іншими інструментами або використовувати бібліотеки.