Nerima.rb #4へ参加した!
本日はNerima.rbへ参加させていただき、前回の続きでObjectクラスについて読み進めていきました!
印象的だった内容
1. ライブシェア
今回はVScodeのライブシェア機能を使い、スクリーンに写しているターミナルを皆操作できる状態で進めていきました!!!
VScode素晴らしい!!!
#nerimarb
— 🐱 (@neko314_) August 17, 2019
今度のNerima.rbではVS CodeのLive Shareを使って画面に映しているターミナルを共有したいと思ってます。任意の方で今回試験的にやってみようかと。共有に入ってみようかという方は事前にインストールをしてお越しください〜🙂
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クラス、まだ読みきれていない部分もあるのでこれから読んでいこうと思います!!
あと、せっかく会に参加するなら自分ももっと積極的に発言しなくてはと思ったので、次回参加する際はちゃんと予習していき、事前に疑問や気になる所を見つけておきたいと思います!!