mirror of
https://github.com/ruby/ruby.git
synced 2026-01-28 21:14:28 +00:00
C99 does not declare ways to designate the charset encoding of the source file. We can assume just US-ASCII characters will be safe.
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
With a block given, calls the block with each successive codepoint from self;
|
|
sets the position to end-of-stream;
|
|
returns +self+.
|
|
|
|
Each codepoint is the integer value for a character; returns self:
|
|
|
|
codepoints = []
|
|
strio = StringIO.new('hello')
|
|
strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
|
|
strio.eof? # => true
|
|
codepoints # => [104, 101, 108, 108, 111]
|
|
codepoints = []
|
|
strio = StringIO.new('тест')
|
|
strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
|
|
codepoints # => [1090, 1077, 1089, 1090]
|
|
codepoints = []
|
|
strio = StringIO.new('こんにちは')
|
|
strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
|
|
codepoints # => [12371, 12435, 12395, 12385, 12399]
|
|
|
|
Position in the stream matters:
|
|
|
|
codepoints = []
|
|
strio = StringIO.new('こんにちは')
|
|
strio.getc # => "こ"
|
|
strio.pos # => 3
|
|
strio.each_codepoint {|codepoint| codepoints.push(codepoint) }
|
|
codepoints # => [12435, 12395, 12385, 12399]
|
|
|
|
When at end-of-stream, the block is not called:
|
|
|
|
strio.eof? # => true
|
|
strio.each_codepoint {|codepoint| fail 'Boo!' }
|
|
strio.eof? # => true
|
|
|
|
With no block given, returns a new {Enumerator}[rdoc-ref:Enumerator].
|