Почему Str [fix_num] дает неправильный результат - PullRequest
1 голос
/ 12 февраля 2012

Я пытаюсь использовать Str [fixnum], чтобы возвратить определенную часть строки.

# Given
Str = "James"

Str[0]
# Should yield `"J"'.
# Instead its yielding `74`.

Странная вещь вчера вечером, это дало "J"Кто-нибудь имеет представление о том, что здесь происходит.Я случайно изменил настройку, из-за которой функция возвращает номер символа ascii.Я в тупике.

Обновление: я подтвердил, что 74 на самом деле является представлением числа ascii для "J".Таким образом, вопрос заключается в том, чтобы функция возвращала ascii вместо действительного символа.

1 Ответ

4 голосов
/ 12 февраля 2012

String#[] с единственным целым числом i в качестве аргумента возвращает i-й байт в виде целого числа в ruby ​​1.8. В ruby ​​1.9 возвращает односимвольную строку.

Итак, когда вы пробовали вчера, вы, вероятно, использовали ruby ​​1.9, а сегодня 1.8.

Чтобы получить односимвольную строку в ruby ​​1.8, вы можете использовать str[i, 1], который имеет такое же поведение в 1.8 и 1.9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...