記憶の外付けHDD

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

2019/10/21_チェリー本(14日目)

はじめに

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

読んだ本

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

本編

読んだページ数

  • 第4章(P118〜P119)

新しく知ったこと

splat展開(*)

splat展開は、配列の前に*を記載することで、処理の結果が配列を展開した状態になる。

配列に別配列内の要素を追加

carry = ["", "カレーのルー"]
vegetable = ["人参", "じゃがいも", "玉ねぎ"]
p carry.push(*vegetable)
#=>["肉", "カレーのルー", "人参", "じゃがいも", "玉ねぎ"]

ちなみに、push(vegetable)とすると、
["肉", "カレーのルー", ["人参", "じゃがいも", "玉ねぎ"]]となります。(配列の中に配列が追加される)

メソッドの可変長引数

  • splat展開ではないが、同じく*を使う
  • 個数に制限のない引数を設定するときに使用
def carry(*foods)
  puts "#{foods.join("")}を煮込む。それがカレー。"
end

carry("", "カレーのルー", "人参", "じゃがいも", "玉ねぎ")

#=> 肉とカレーのルーと人参とじゃがいもと玉ねぎを煮込む。それがカレー。

以上