String#each_byteとString#scanの違い

String#each_byteだと、Fixnumとして各文字を切り出しますが、scanはStringとして切り出します。

s = "Rubyco!"

s.each_byte do |x|
  puts "#{x} (#{x.class})"
end

s.scan(/./) do |c|
  puts "#{c} (#{c.class})"
end

実行結果です。

82 (Fixnum)
117 (Fixnum)
98 (Fixnum)
121 (Fixnum)
99 (Fixnum)
111 (Fixnum)
33 (Fixnum)
R (String)
u (String)
b (String)
y (String)
c (String)
o (String)
! (String)