2019/10/16_チェリー本(9日目)
はじめに
今日もチェリー本、ちょっとだけ読みました。
読んだ本
本編
読んだページ数
- 第4章(P99〜P102)
新しく知ったこと
Rangeオブジェクト
- 値の範囲を表すオブジェクト
..
は最後の値を含む1..4
は「 1以上4以下」
...
は最後の値を含まない1...4
は「1以上4未満」
Rangeオブジェクトの便利な使い方
配列から一部を抜き出す
- 配列から一部要素を抜き出すときに、Rangeオブジェクトを使用できる
例
position = ["喜", "怒", "哀", "楽"] puts position[1..2] #=>怒, 哀
- ネガティブな感情だけを抜き出すことができました。
[1..2]
の記載で、配列の「2番目以上3番目以下」の要素を抜き出せます。
文字列から一部の要素を抜き出す
- 文字列から一部要素を抜き出すときも、Rangeオブジェクトを使用できる
例
chosyu = "リキラリアット" puts chosyu[2..6] #=> ラリアット
- 長州感が一気になくなり、滑舌がよくなった気がします。
- [2..6]の記載で文字列の3文字目から7文字目を抜き出せました。
以上以下、以上未満を判定する
例
# 平成かどうかを判別するメソッド def heisei?(age) (1989..2019).include?(age) end heisei?(1988) #=> false heisei?(2000) #=> true
- 論理演算子(<,>,=)を使うよりも、Rangeオブジェクトを使ったほうが、簡単に記載できる
- case文でも使える 例
# 昭和か平成か判定するメソッド def age(num) case num when 1926..1988 puts "昭和" when 1989..2019 puts "平成" else puts "ググってください" end end age(1988) #=> 昭和 age(2000) #=> 平成
値が連続する配列を作成する
to_a
メソッドで配列化する
("a".."d").to_a #=> ["a", "b", "c", "d"]
[*]
(splat展開)でも配列を作成できる
[*"a".."d"] #=> ["a", "b", "c", "d"]
以上