複数の値をまとめて扱う(配列)
jabascriptの時と同じで、[値1,値2,値3]みたいな感じで書く。
【代入すると、、、】
names = [ “アシタカ”,”サン”,”エボシ”]
puts names
↓
アシタカ
サン
エボシ
- 配列の要素が1つずつ改行されて出力される。
インデックス番号
これもjabascriptの時と同じ。
puts names [1]とすると、該当するインデックス番号の値が出力される。
繰り返し処理(each文)
each文を使うと、配列の要素を順番に取り出して処理を行うことができる。
【書き方例】
names = [ “アシタカ”,”サン”,”エボシ”]
names.each do | name | ← name に値が代入される
puts name
end
↓
アシタカ
サン
エボシ
- each
- リスト
変数の使用できる範囲
Rudyではスコープという。
複数の値をまとめて管理する方法:ハッシュ
配列は複数の値を並べて管理するのに対して、ハッシュはそれぞれの値にキーと呼ばれる名前をつけて管理する。
【書き方】
{ キー1=>値1,キー=>値2}
【例】
{ “name”=>”アシタカ”,”age”=>18 }
【代入】
user = { “name”=>”アシタカ”,”age”=>18 }
puts user → “name”=>”アシタカ”,”age”=>18 }と出力される
ハッシュの要素を使う
対応するキーを使って、ハッシュ[キー]とすることで用いることができる。
【書き方例】
user = { “name”=>”アシタカ”,”age”=>18 }
puts user[“name”] → 「アシタカ」と出力される
【ハッシュの要素を更新する】
user = { “name”=>”アシタカ”,”age”=>18 }
puts user → { “name”=>”アシタカ”,”age”=>18 }
user[“age”] = 25
puts user → { “name”=>”アシタカ”,”age”=>25 } ← 更新された
ハッシュに要素を追加する
ハッシュ[新しいキー] = 値と書くことで、ハッシュに新しい要素を追加できる。
【書き方】
user = { “name”=>”アシタカ”,”age”=>18 }
user[“gender”] = “男”
puts user
↓
{ “name”=>”アシタカ”,”age”=>18 ,“gender”=>”男”} ← 新しい要素が追加された
- リスト
- リスト
シンボル
文字を「”」や「’」で囲む代わりに、先頭に「:」をつけた書き方のこと。
文字列とシンボルは厳密には違うものだが、同じように使うことができる。
【キーがシンボルのハッシュは省略できる】
通常:user = { “name”=>”アシタカ”,”age”=>18 }
シンボル:user = { :name=>“アシタカ”,:age=>18 }
省略:user = { name:“アシタカ”,age:18 }
省略ハッシュの出力:puts user[:name]
- 要素を取得する場合にはシンボルを用いる必要があるので注意!
存在しないキーを指定する(nil)
nilを回避する
if文を用いる。
【書き方例】
<userの情報がある場合>
user = { “name”=>”アシタカ”,“age”=>18 }
if user[:age]
puts “わが名は#{user[:name]}。#{user[:age]}歳だ。”
else
puts “わが名は#{user[:name]}。年は秘密だ。”
end
↓
アシタカさんは18歳です。
<userの情報がない場合>
user = { name:”アシタカ”}
if user[:age]
puts “わが名は#{user[:name]}。#{user[:age]}歳だ。”
else
puts “わが名は#{user[:name]}。年は秘密だ。”
end
↓
わが名はアシタカ。年は秘密だ。
配列の要素にハッシュを入れる
[{キー1:値1},{キー2:値2}]
【書き方例】
user = [
{name:”アシタカ”,age:18},
{name:”エボシ”,age:30}
]
put user[0] → {name:”アシタカ”,age:18}と出力される
- リスト
- リスト
配列の中のハッシュ
【書き方例】
users = [
{name:”アシタカ”,age:18},
{name:”エボシ”,age:30}
]
user = users[1]
put user[:name] → 「エボシ」と出力される
- useに{name:”エボシ”,age:30}を代入する
- 代入した変数userをつかって、変数[キー]とすることで「エボシ」が出力される
を省略して書くと
put users[1][:name] となる。eachの中でも使える
コメント