落書きノート

ふと自分が気になった事を書いてます

Ruby 個人的に勉強になることその3

ポリモーフィズムを説明しているプログラムからです。

str = ""
io = $stdout
puts str << "Ruby"
io << "Ruby"
puts

ちょっといじってありますが、だいたいこんな感じです。strには空文字。ioには$stdoutを代入しています。代入することでioに何か数値や文字列を代入するだけで、標準出力に出力されるようになります。

strにRubyという文字列を<<演算子で追加しています。この辺りはC++言語のstd::cout(iostream)を使ったことのある人なら馴染みのある演算子だと思います。追加した後、strの値をputsメソッドで出力します。

ioにRubyという文字列を<<演算子で追加しています。この時すでに$stdoutを代入していますから、ioにRubyという文字列を突っ込むと、そのままその文字列がターミナルに出力されます。