ローイングファンのプログラミング日記

ボート競技やプログラミングについて書きます

定数 ARGV、 配列の配列から要素を取りだす

今回はターミナル/PowerShellからデータを入力する方法と配列の配列からオブジェクトを取りだす方法を試す。

目次


定数ARGV

RubyにはARGVという定数がある。
Rubyリファレンスマニュアルは次のとおり。

Rubyリファレンスマニュア Objectクラス
定数 ARGV
https://docs.ruby-lang.org/ja/latest/class/Object.html

ARGVにはターミナル/PowerShellから入力した値が配列のかたちで代入される。
入力値は全て文字列オブジェクトとなる。
値はRubyコマンドの引数として入力する。
引数はコマンドにつづけて半角スペースを挟んで入力する。引数は複数とれる。

コードを書く。

test.rb

p ARGV


上のテストコードをターミナル/PowerShellから次のように実行する。
ターミナル/PowerShell

ruby test.rb N会社 M大学 C大学 1 2 3


実行結果

["N会社", "M大学", "C大学", "1", "2", "3"]


入力した値が文字列オブジェクトになって配列に格納されているのがわかる。

次にARGVの値をとりだす。
ARGVは配列なのでインデックスを使ってとりだせる。

test.rb

#1番左の要素を表示する
puts ARGV[0]


上のコードを次のように実行する。
ターミナル/PowerShell

ruby test.rb N会社 M大学 C大学 1 2 3


実行結果

N会社


実行結果はインデックス[0]のN会社だけが表示される。

配列の配列から要素を取りだす

入れ子になった配列の要素を取りだすには入れ子の分だけインデックスをつづけて指定する。
コードを書く。

test.rb

array_nest = [
    ["a","b","c"],
    ["d","e","f"],
    ["g","h","i"]
]

#aを選ぶ
puts array_nest[0][0]

#cを選ぶ
puts array_nest[0][2]

#hを選ぶ
puts array_nest[2][1]


実行結果

a
c
h


ねらいどおり要素が取りだせている。

今回の環境 Ruby 2.4.3p205
macOS 10.13.3
Windows10