まえがき
Web系エンジニア転職を目指して学習しております。
今回は「プロを目指す人のためのRuby入門」という書籍で学習している私の振り返り記録になります。
学習した内容全てではなく、一部分を取り上げて記録しております。
書籍の内容を記載しすぎるのは問題であると認識し、配慮しておりますが問題がある部分がありましたらご指摘頂けると幸いです。
include?メソッド
呼び出したクラスオブジェクトに引数で渡したモジュールがincludeされているかをtrue or falseのBooleanで返す。include?メソット自体はStringクラスとArrayクラスにも同名のメソッドが定義されていますがあくまで今回のinclude?メソッドはClassクラスで定義しているinclude?メソッドと認識しています。この認識が正しいかは分からなかったので知っている方がいたらコメントで教えて頂きたいです。
module Profile
end
class User
include Profile
end
User.include?(Profile)
# true
User.include?(Introduce)
# false
Enumerableモジュール
配列やハッシュ、範囲(Range)など、何かしらの繰り返し処理ができるクラスにincludeされているモジュールです。
=> 「プロを目指す人のためのRuby入門」から抜粋
includeしているクラスでeachメソッドが定義されていればEnumerableモジュールで定義してあるメソッドを使用することが出来ます。
調べてみると私が知っているメソッドではcount, filter, find, select, sortなどがありました。
つまり、これらのメソッドが使用出来ていたのはクラス側でEnumerableモジュールをincludeしているからと理解することが出来ました。
Comparableモジュール
比較演算を可能にする(つまり値の大小を判定できるようにする)モジュール。
=> 「プロを目指す人のためのRuby入門」から抜粋
includeしているクラスで<=>(宇宙演算子)が定義されていればComparableモジュールで定義してあるメソッドを使用することが出来ます。
このモジュールをincludeしていることで<, >, =などのメソッドを使用することが出来ている。
最後に
モジュールについては他の方のポートフォリオやネットの記事で見かけることはありましたが、モジュール自体がどういった役割を持っているのか知らなかったのでこのモジュールの部分の学習がとても参考になります。
まだモジュールの内容が残っているので引き続き学習していきたいと思います。