こんにちは。 今日はCrystalのIOの実装について簡単に紹介していきます。 バッファリングまわりにも簡単に触れます。 Kernel#putsの行く末を追う もっとも馴染み深いメソッドであるKernel#putsがどこにたどり着くのか追ってみましょう。 なんか前にだれかがやってた気がするけど資料みつけられなかったし、かなり前なのでちょっと変わっているだろうと思うのでやってみます。 Kernel#puts(*objects) source: https://github.com/crystal-lang/crystal/blob/0.24.0/src/kernel.cr#L82 # Prints objects to `STDOUT`, each followed by a newline. # # See also: `IO#puts`. def puts(*objects) : Nil