Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列が端末にストリーミングされるときに、特定の文字列メソッドをポン引きしたいと思います。たとえば、 を書き換えたいとしString#to_sます。文字列がファイルに書き込まれている場合ではなく、端末で ANSI カラーコードで文字列を配信したい。そのためには、現在書き込まれている IO にアクセスする必要があります。現在の読み取り/書き込みコンテキストを識別する変数にアクセスできますか?
String#to_s
文字列のようなメソッドto_sは非常に重要であるため、それらを変更すると、多くの依存コードが台無しになる可能性があります。メソッドを変更するのではなく、 、 などのメソッドStringを変更する必要があります。 (ポリモーフィズム)などの各サブクラスに異なる定義を与えることができます。その後、IO クラスを識別する必要はありません。IOputsprintIOFile
to_s
String
IO
puts
print
File