メタプログラミングRubyを読んでいます(6)

読んだ範囲

メタプログラミングRuby」の「4.6 ドメイン特化言語を書く」から「5.2.1 クイズの答え」まで読みました。

知ったこと

共有スコープ

共有スコープという概念を知りました。複数のメソッドが同一の変数を共有する技法です。

:arrow_down: 文章だけでは、分かりにくいのでサンプルコードを示して終わりにします。

def share_scope
  n = 1

  Kernel.send :define_method, :counter do
    n
  end

  Kernel.send :define_method, :double  do
    n *= 2
  end
end

share_scope

p counter # => 1
double
p counter # => 2

以上です。リーフマンスを飲んで寝ます :zzz: