まずはhello, worldからでしょってことで、3回hello, worldを表示するスクリプトを作ってみた↓
3.times do
print "hello, world!\n"
end
3回「hello, world!」を表示する、ということを的確に表現できてるなぁと感心。
このコードのポイントは2つあるみたい。
- 「3」という数値もオブジェクトであるということ
- メソッドにブロックというコードの固まりを引き渡せるということ
ポイント1は、ずーーーーーっとC(とちょこっとC++)だった私には違和感がある。Rubyでは、とにかく全てがオブジェクトらしい。つまりプリミティブ型が存在しないということ。
ポイント2はまだよく理解していないんやけど、Rubyの神髄の機能らしい。「3.times do~end」は一見制御構文のように見えるけど、実態はメソッド呼び出しに過ぎない。
「3」というオブジェクトのtimesメソッドに「print "hello, world!\n"」というコードを引数として渡していると。で、timesメソッドでは自オブジェクトの回数(ここでは3)分ループで「print "hello, world!\n"」というコードを実行している(ということでいいのかな?)。ブロックはコールバック関数みたいなものと認識した。ふーんって感じ。
たった3行のコードでも奥が深いもんだ。
最近のコメント