はじめに
前回の続きです。
CODEPREPでRubyやってます。
やってみた
空Hashの作成方法
hash_data = Hash.new()
new Hash() かとおもったら逆だった。
配列からのHash化
array_data = ['AAA', 'aaa', 'BBB', 'bbb', 'CCC', 'ccc'] hash_data = Hash[*array_data] p hash_data => {"AAA"=>"aaa", "BBB"=>"bbb", "CCC"=>"ccc"}
これ結構便利だなぁ。
phpではこの関数なさそう。たぶん。
array_combineとかならあるけど。
Hash(key, valueの組み合わせ)の配列化
hash_data = {'AAA' => 'aaa', 'BBB' => 'bbb', 'CCC' => 'ccc'}
p hash_data
=> {"AAA"=>"aaa", "BBB"=>"bbb", "CCC"=>"ccc"}
p array_data.to_a
=> [['AAA', 'aaa'], ['BBB', 'bbb'], ['CCC', 'ccc']]
簡単に変換できるのは楽だ。
こういうところも人気なひとつなのかな。
Hashのkeyやvalueをすべて取得
key
hash_data = {'AAA' => 'aaa', 'BBB' => 'bbb', 'CCC' => 'ccc'}
hash_data.each_key do |key|
p key
end
=> 'AAA'
=> 'BBB'
=> 'CCC'
p hash_data.keys
=> ['AAA', 'BBB', 'CCC']
value
hash_data = {'AAA' => 'aaa', 'BBB' => 'bbb', 'CCC' => 'ccc'}
hash_data.each_value do |val|
p val
end
=> 'aaa'
=> 'bbb'
=> 'ccc'
p hash_data.values
=> ['aaa', 'bbb', 'ccc']
keys と values は、 array_keys() や array_values() なんかと一緒だけど、一個ずつ取り出せるってのもあるようだ。
Hashの各存在確認
Hashが空かどうか
hash_data = {}
if hash_data.empty?
p "empty!"
end
=> empty!
Hashに指定のkeyが存在するか
hash_data = {'AAA' => 'aaa', 'BBB' => 'bbb', 'CCC' => 'ccc'}
if hash_data.key?('AAA')
p "exists!"
end
=> exists!
phpではisset() とか empty() を使う感じだけど、rubyでは ? を使うのか。
なんかかわいい。
終わりに
細かいところが違うけど、続けてやるとある程度わかってきた。
次もRubyやろう。Goの勉強はある程度Rubyやってからだな。。。
続けてやらないとすぐ忘れる。
あ、シュタゲゼロ始まる。
ではでは。