もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

Ruby勉強その2(基礎の基礎)

はじめに

前回の続きです。

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']

keysvalues は、 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やってからだな。。。

続けてやらないとすぐ忘れる。

あ、シュタゲゼロ始まる。

ではでは。