Nerima.rb #4へ参加した!

 

本日はNerima.rbへ参加させていただき、前回の続きでObjectクラスについて読み進めていきました!

 

docs.ruby-lang.org

 

印象的だった内容

1. ライブシェア

今回はVScodeのライブシェア機能を使い、スクリーンに写しているターミナルを皆操作できる状態で進めていきました!!!

VScode素晴らしい!!!

 

 

2. extend

extend(*modules) メソッドの部分では、特異メソッドや特異クラスについても深掘りしていきました。

自分は特異メソッドや特異クラスをよくわかっていなかったので、今回解説いただいたおかげで理解が進みました!!

「特異」だとわかりづらいので「Singleton(1つだけ固有の)」と解釈した方がいい、というお話がとても分かり易かったです!

 

 ①

obj = Object.new
obj.extend Foo, Bar

 

p obj.a #=> "ok Foo"
p obj.b #=> "ok Bar"

 

class << obj
  include Foo, Bar
end

 

p obj.a #=> "ok Foo"
p obj.b #=> "ok Bar"

 

class Klass
  include Foo
  extend Bar
end

 

p Klass.new.a #=> "ok Foo"
p Klass.b #=> "ok Bar"

るびまのサンプルコードより

 

上記の①②の2つはどちらもほぼ同じことをしており、objに対してのみFoo,Barモジュールのメソッドを生やしております。
③に関してはincludeはそのクラスのインスタンスに対してFooモジュールのメソッドを生やしており、extendはクラスの特異メソッド(=クラスメソッド)を生やしております。

 

 

感想その他 

Objectクラス、まだ読みきれていない部分もあるのでこれから読んでいこうと思います!!

あと、せっかく会に参加するなら自分ももっと積極的に発言しなくてはと思ったので、次回参加する際はちゃんと予習していき、事前に疑問や気になる所を見つけておきたいと思います!!