argvとは
argv
とは、argument vectorの略で「引数の配列」を意味する。
コマンドライン(ターミナル)からスクリプトを実行する時に、スクリプトに引数を渡すために利用する。
argv
は、コマンドライン引数を取得するための仕組みとしてRubyだけではなくて、使い方はそれぞれの言語で違うが、C言語やPython、その他様々な言語にも存在する。
argvの使い方
ruby
では、ARGV
という配列オブジェクトから、Rubyスクリプト実行時に渡された引数が参照できる。
スクリプト実行時に以下のように引数を渡すことで使用できる。
$ ruby スクリプトファイル名 1番目の引数 2番目の引数 3番目の引数...
この場合は、ARGV[0]
には1番目の引数が、ARGV[2]
には3番目の引数が設定されている。
実際の使用例
以下のようなファイルがあったとする。
hoge.rb
p "Hello, #{ARGV[0]}"
この「hoge.rb」に引数を渡して実行してみる。
.ターミナル
$ ruby hoge.rb World!
=> "Hello, World!"
違う例も見てみる。
今度は2つの引数を足し算して出力するスクリプトを作成し実行してみる。
hogehoge.rb
p ARGV[0] + ARGV[1]
$ ruby hogehoge.rb 1 2
=> "12"
出力結果は “12” となった。
引数として渡した1
と2
が足し算されずにくっついた。
この結果から分かるように、argv
では渡された引数は全て文字列になる。
引数の文字列をto_iメソッド
を使って整数に変換するよう修正。
hogehoge.rb
p ARGV[0].to_i + ARGV[1].to_i
$ ruby hogehoge.rb 1 2
=> "3"