🖥
Ruby | pinspect メソッドの戻り値を変えると pry での表示も変わる
Stringクラスのinspectを上書きした例
[12] pry(main)> class String
[12] pry(main)* def inspect
[12] pry(main)* :overwrite
[12] pry(main)* end
[12] pry(main)* end
どんな文字列で終わっても overwrite
が表示されるようになった。
[13] pry(main)> "a"
=> overwrite
[14] pry(main)> "b"
=> overwrite
[15] pry(main)> "c"
=> overwrite
追記
これは pry が表示に p
を使っているからっぽい。
( p
メソッドは inspect
メソッドの結果を出力するメソッド )
素のRubyで試した例。
class String
def inspect
:overwrite
end
end
p "a" # overwrite
pp "a" # overwrite
puts "a" # a
環境
- pry (0.11.3)
- ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
参考
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-06-03
Discussion