On Apr 24, 2007, at 4:35 AM, Michael W. Ryder wrote: > If I were getting back a character or string I would not have a > problem. The problem is that every other use of [] in the string > class returns a string or nil, this one returns an integer. I was > curious if this was necessary for some other part of the language > or just an "accident". A string serves a dual purpose in Ruby, it is a container for textual data and it is also a container for binary data (an array of bytes). When dealing with binary data, the ability to extract a single byte at an offset is a common operation and so buffer[offset] # returns fixnum is a very handy syntax. As you've noted, that isn't as useful when you consider a string to be text and I believe the direction in Ruby 1.9 is to make the syntax lean towards the string as text interpretation. In Ruby 1.9, s[offset] return the one character string starting at offset, where offset is interpreted within the context of the string encoding. That is to say, offset is not a *byte* offset in this case since the goal is to support a variety of encodings. Gary Wright