irbでだけ発動する副作用ならできた #のか?
$ irb
> class Array; def inspect; puts "Hello, World!"; return self; end; end
> hoge = :hoge
> piyo = :piyo
> piyo, hoge = piyo, hoge
Hello, World!
=> [:piyo, :hoge]
irbでだけ発動する副作用ならできた #のか?
$ irb
> class Array; def inspect; puts "Hello, World!"; return self; end; end
> hoge = :hoge
> piyo = :piyo
> piyo, hoge = piyo, hoge
Hello, World!
=> [:piyo, :hoge]
待って。Array#inspect を再定義してたら、[:piyo, :hoge] は誰が書いてるんだ…
@tadd はい。それで再定義したArray#inspectが呼ばれてHello, World!してると思ってます。でも、return selfすると=> の右に再定義前のArray#inspectの書いたっぽいものが現れてて、どこに再定義前の動作が残ってるのか理解できてません。irbが名前空間(じゃなくて何だっけ)を分けてたりするのかな?
@zundan あれ、最後のlhsの結果が自動でinspectされてるやつ(IRBの機能)じゃないでしょうか?
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.