配列
配列は、[1, 2, 3]
、["apple", "banana", "orange"]
のような形式のオブジェクトです。
番号を指定して要素を取得することができます。
番号が1ではなく0から始まることに注意が必要です。
fruits = ["apple", "banana", "orange"] puts fruits[0] #=> apple puts fruits[1] #=> banana puts fruits[2] #=> orange
要素を取得する方法はほかにもあります。
fruits = ["apple", "banana", "orange"] #[-n]で後ろからn番目の要素を取得 puts fruits[-1] #=> orange #先頭の要素を取得 puts fruits.first #=> apple #末尾の要素を取得 puts fruits.last #=> orange #存在しないものを指定するとnilが返る p fruits[5] #=> nil
文字列に変数を埋め込む
先ほどの配列fruits
を使って、私はbananaが好きです。
と表示するプログラムを考えます。
fruits = ["apple", "banana", "orange"] puts "私はfruits[1]が好きです。" #=> 私はfruits[1]が好きです。 puts "私は" + fruits[1] + "が好きです。" #=> 私はbananaが好きです。
全体をダブルクォーテーション"
で囲むと、fruits[1]
自体も文字列として認識されてしまいます。足し算を使うことで、意図する表示ができました。
式展開
今回はすべて文字列なのでこれでも問題ありませんが、式展開という書き方を知っておくと便利です。
式展開の書き方:#{変数名など}
fruits = ["apple", "banana", "orange"] puts "私は#{fruits[1]}が好きです。" #=> 私はbananaが好きです。
式展開を使えば、数値と文字列の連結も可能です。
age = 30 puts "私は" + age + "歳です。" #=> エラー!(文字列と数値の足し算は不可) puts "私は#{age}歳です。" #=> 私は30歳です。
変数だけでなく計算を埋め込むこともできます。ダブルクォーテーションではなくシングルクォーテーションで囲むと、式展開せずすべてが文字列になります。
n = 2 m = 3 puts "#{n}×#{m}の答えは#{n * m}です。" #=> 2×3の答えは6です。 puts '#{n}×#{m}の答えは#{n * m}です。' #=> #{n}×#{m}の答えは#{n * m}です。