20210406_アウトプット(Ruby)
やったこと
志望動機をじっくり考える(4/5)
ゼロからわかるRuby超入門の続き(9:モジュール)
1%の成長
- モジュールについて理解が深まった
- 企業の求めていることは何かと、自分が貢献できることについて考えている(途中)
新しく学んだこと
モジュール
🤔私:モジュールって何?
🥸先生:メソッドを共同で利用できるようにすることだよ。
(1)モジュールを作る
module モジュール名 end
(2)メソッドを定義する
module モジュール名 def モジュールのメソッド foo end end
(3)クラスで使えるようにする
class Drink include モジュール名 # 省略 クラス内の定義 end
⚠️インスタンメソッドの場合はinclude
だけど、クラスメソッドにしたい場合はextend
にする。
上記の3つの手順でモジュールは活用する💡
🤔私:クラスと何が違うの?違いがよくわからない。
🥸先生:下記のようなポイントがあるよ。モジュールは主にメソッドを部品として使うことが目的なんだ。
モジュールのポイント |
---|
インスタンスを作ることは出来ない(引数や戻り値はOK!) |
複数のクラスで何度も部品(メソッド)として使える |
クラス継承のポイントである「子は親の一部です」が通じなくてもモジュールは使える |
Enumerable(イニューメラブル)モジュール
- インクルードするクラスには each が定義されていると、便利なイミューメラブルメソッドを使えるよ。
😊私:つまり、自分でクラスを定義した時に、eachメソッドを定義すると、enumerableをインクルードしてメソッド群を使えるってことだね。
感想
- クラスを理解した後に、モジュールの概念をもう一度学んだら、違いがより明確に理解できた。モジュールはメソッドのパーツだったのか。(インスタンスを生成できない、という意味がようやくスッキリ。やっぱりクラスがひっかかっていたのか。)
- 日頃の勉強と同じくらい、行きたい企業について向き合うことも大事だと思っていて、時間の使い分けが難しい。ついつい企業のこと調べているとワクワクしてきて時間が経ってしまう。
- あと寝不足になるとドライアイが辛くなる😭早めに寝よう💦