Ruby 1.8.7 против 1.9 * Различия в строке [Fixnum] - PullRequest
3 голосов
/ 28 марта 2012

Ruby 1.8.7:

"abc"[0]
=> 65

Ruby 1.9 *

"abc"[0]
=> "a"

Есть ли способ, которым я могу безопасно написать код выше, чтобы получить второй результат в обоих 1.8.7и 1,9 *?Мое решение до сих пор: "abc".split('').first, но это не кажется очень умным.

Ответы [ 4 ]

5 голосов
/ 28 марта 2012
"abc"[0].chr

дает второй результат в обеих версиях.

1.8: http://ruby -doc.org / core-1.8.7 / Integer.html # method-i-chr
1.9: http://ruby -doc.org / core-1.9.3 / String.html # method-i-chr

5 голосов
/ 28 марта 2012

Если вы хотите первый символ строки, как строку, то добавьте длину в скобках:

"abc" [0,1]

0 голосов
/ 05 апреля 2012

Обратите внимание, что в версии 1.8 большинство этих ответов будут работать только для символов в диапазоне ASCII:

irb(main):001:0>  "ā"[0].chr
=> "\304"
irb(main):002:0>  "ā"[0,1]
=> "\304"
irb(main):003:0>  "ā"[0..0]
=> "\304"

Хотя, конечно, это зависит от вашей кодировки.

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