November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Należy wykonać pewną czynność w stosunku do każdego znaku łańcucha z osobna.
W dokumencie złożonym wyłącznie ze znaków ASCII każdy bajt łańcucha odpowiada jednemu znakowi. Za pomocą metody String#each_byte można wyodrębnić poszczególne bajty jako liczby, które następnie mogą być skonwertowane na znaki.
'foobar'.each_byte { |x| puts "#{x} = #{x.chr}" }
# 102 = f
# 111 = o
# 111 = o
# 98 = b
# 97 = a
# 114 = r
Za pomocą metody String#scan można wyodrębnić poszczególne znaki łańcucha jako jednoznakowe łańcuchy:
'foobar'.scan( /./ ) { |c| puts c }
# f
# o
# o
# b
# a
# r
Ponieważ łańcuch jest sekwencją bajtów, można by oczekiwać, że metoda String#each umożliwia ...