Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

instance_execでブロックに引数を渡して実行できる

instance_execはinstance_evalと似てますがちょっと違う子です。

> "hoge".instance_eval{ self[0] }
=> "h"

> "hoge".instance_exec{ self[0] }
=> "h"

と、これだとinstance_evalと何が違うの?
という感じですが...この子は引数を持つ事ができます

> "hoge".instance_exec(3){ |e| self[e] }
=> "e"

> "hoge".instance_exec(0){ |e| self[e] }
=> "h"

当然、classにもmoduleにもあります。