Hitsuji_monのブログ~ 村上春樹のあれ ~

文学好きな組み込み系エンジニア

【#100DaysOfCode】6日目「作りながら学ぶRuby入門」ハッシュ パターンマッチング

[ご飯食べすぎ]ーー[横になる] ーー [だらだらスマホ]
ダメですね。

ということで、本日の[#100DaysOfCode]

Days 6

・「作りながら学ぶRuby入門」

・第9章:コレクションを使おう | ハッシュ、パターンマッチング

キー + 値 の組み ハッシュ

ハッシュを作成し、ローカル変数に渡す

# 「作りながら学ぶRuby入門」 第9章 ハッシュ
## Symbolクラス 「:~~」文字や数字の並び
## 文字列の代わりによく用いられる

# 新しいハッシュを作る
friends = {
    :shin => "Shin Kuboaki",
    :shinichirou => "Shinichorou Ooba",
    :shingo => "Shingo Katori",
    :fav_artist => "ビリー・アイリッシュ"
}

# ハッシュの要素を一つずつ処理する
# 繰り返しの都度、キーと値をブロック内のローカル変数key, valueに渡す
friends.each { |key, value|
    # ローカル変数の値を表示する
    puts "#{key}, #{value}"
}


キーが「含まれているかどうか」の検索

# 「作りながら学ぶRuby入門」 第9章
## 新しいハッシュを操作する。含まれているか調べる

# 新しいハッシュを作る
friends = {
    :shin => "Shin Kuboaki",
    :shinichirou => "Shinichorou Ooba",
    :shingo => "Shingo Katori",
    :fav_artist => "ビリー・アイリッシュ"
}

# ハッシュに要素を追加する
friends[ :shinsaku ] = "高杉 晋作"

# ハッシュの要素を検索する
puts friends.include?( :shinsaku)
puts friends[:shinsaku]

# 追加した要素を削除する
friends.delete(:shinsaku)

# ハッシュの要素を検索する
if friends.include?(:shinsaku) then
    puts friends[:shinsaku]
else
    puts "見つかりません"
end

正規表現を使って、パターンマッチング

# 「作りながら学ぶRuby入門」 第9章
# パターンマッチを使おうぜ!!  
## 正規表現を使って、文字が「一部含まれている」場合の検索

str = "Twinkle, twinkle, little star,
How I wonder what you are.
Up above the world so high,
Like a diamond in the sky.
Twinkle, twinkle, little star,
How I wonder what you are."

# 上の歌詞を行ごとに分割し、linesという配列に格納する
lines = str.split(/\n/)

# "you"にマッチする行を表示する
puts "youが含まれていた行"
lines.each { |line|
    if line =~ /[Yy]ou/ then
        puts line
    end
}

puts ""

# "i"がきて2文字置いて、"l"がくる文字列が含まれる
puts '"i"がきて2文字置いて、"l"がくる文字列が含まれる行'
lines.each { |line|
    if line =~ /i..l/ then
        puts line
    end
}