記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

2019/10/16_チェリー本(9日目)

はじめに

今日もチェリー本、ちょっとだけ読みました。

読んだ本

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus | 伊藤 淳一 | コンピュータ・IT | Kindleストア | Amazon

本編

読んだページ数

  • 第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"]

以上