timesメソッドは簡潔
簡単なコードにしておく。flower = "Rose" 5.times do puts flower end実行すると
$ ruby times_test.rb 0Rose 1Rose 2Rose 3Rose 4Roseこうなる。問題なし。
timesメソッドでもブロックローカル変数を定義できる
flower = "Rose" 5.times do |i| print flower,i,"\n" end実行すると
$ ruby times_test.rb Rose0 Rose1 Rose2 Rose3 Rose4ブロックローカル変数iに数字が順番に代入されていることがわかる。
あえてeachメソッドで書き換えてみる
flower = "Rose" ary = [0, 1, 2, 3, 4] ary.each do |i| print flower,i,"\n" endこんな感じになる。
こうやって見てみるとeachメソッドもtimeメソッドも結局根本は同じで、timesメソッドはeachメソッドの実行を数字配列に限定したもの、と理解できる。
また、数字配列に限定することによって、終了の数字をtimesの前に書くだけで実行してくれるようになっている、ということ。
0 件のコメント:
コメントを投稿