ブロック付きメソッド呼び出し
以下のプログラムでdo ... endはブロックです。eachというメソッドをブロック付きで呼び出しています。
def print_them(a) a.each do |k| print "#{k} (#{k.class}), " end print "\n" end print_them([100, 200, 300]) # => 100 (Fixnum), 200 (Fixnum), 300 (Fixnum), print_them([123, 3.14, "Hello", 1234567890]) # => 123 (Fixnum), 3.14 (Float), Hello (String), 1234567890 (Bignum),
以下では、{ ... }がブロックです。
def print_them(a) a.each {|k| print "#{k} (#{k.class}), " } print "\n" end print_them([100, 200, 300]) # => 100 (Fixnum), 200 (Fixnum), 300 (Fixnum), print_them([123, 3.14, "Hello", 1234567890]) # => 123 (Fixnum), 3.14 (Float), Hello (String), 1234567890 (Bignum),