はじめに
前回の続きです。
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やってからだな。。。
続けてやらないとすぐ忘れる。
あ、シュタゲゼロ始まる。
ではでは。