目次(まとめ)

◾️ ARGV変数を介して、プログラムの外で設定した数値を読み込む

◾️ 関連記事

Rubyを使ってプログラム(例:sample.rb)を作ったんだけど、プログラムの内容は変えずに、入力データを引数として与えたい

Rubyのプログラムを実行する際に、引数を渡す場合には、プログラム内部で "ARGV" 変数を使用して、引数を受け取ることになります。

今回の記事では、"ARGV" 変数を使用して、引数を受け取る方法を紹介します。

ARGV変数を介して、プログラムの外で設定した数値を読み込む

ここでは、Rubyのサンプルプログラムとして、変数 "a" と "b" の足し算を行うプログラムを考えます。

# sample.rb

a = 1
b = 3

puts (a + b)

これを、以下のように実行すると、"1" と "3" の足し算の結果である "4" が出力されます。

$ ruby sample.rb
4

もし、"4" と "6" の足し算をしたいときには、プログラムを書き直す必要がありますね。面倒ですね。

その面倒さを解消するためには、"ARGV" 変数を使用して、同じプログラムを引数を変えながら実行すればOKです。



次のサンプルプログラム(sample_2.rb)では、"ARGV" 変数を使って、実行するときにプログラムに与えたい値に対応する箇所を書き換えています。

# sample_2.rb

a = ARGV[0].to_i   # 実行するときに与える引数の1つ目(整数を想定)
b = ARGV[1].to_i   # 実行するときに与える引数の2つ目(整数を想定)

puts (a + b)

これを実行するときには、以下のように引数を与えます。

$ ruby sample_2.rb 1 3
4

"sample_2.rb" の次に書いている "1" という文字がプログラム(sample_2.rb)の中で "ARGV[0]" に読み込まれ、その次に書いている "3" という文字が "ARGV[1]" に読み込まれます。

これらは文字なので、数字として計算を行うときには、数字(整数や実数)に変換する必要があるので注意してください。

この例では、2つの引数を考えていましたが、もちろん3つ以上の引数を与えることも可能です。

この場合には、"ARGV[2]" などをプログラム中で使用することになります。


このように、引数を与えてプログラムを実行するようにすれば、同じプログラム(sample_2.rb)を使って、さまざまな数字の足し算を行うことができます。

$ ruby sample_2.rb 5 6
11

関連記事