Je cherche à transformer le caractère 'a' en 97 rubis 1.9.2Valeur entière d'un caractère dans ruby?
Ruby 1.8.7
irb(main):001:0> ?a
=> 97
Ruby 1.9.2
irb(main):001:0> ?a
=> "a"
Je cherche à transformer le caractère 'a' en 97 rubis 1.9.2Valeur entière d'un caractère dans ruby?
Ruby 1.8.7
irb(main):001:0> ?a
=> 97
Ruby 1.9.2
irb(main):001:0> ?a
=> "a"
Vous voulez probablement String#ord
:
% irb
ruby-1.9.2-head > 'a'.ord
=> 97
Impossible de faire fonctionner ceci sur v1.8 –
?a
renverra ASCII valeur du caractère a
Malheureusement, ne fonctionnera pas même comme pré-Ruby 1.9. Voir http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l16 – Zabba
'? A' retournera la chose la plus proche d'un type' char' que Ruby a, qui dans Ruby 1.9 est un '' String '' 'et en Ruby pre-1.9 est un' Fixnum'. 'String # ord' (et son double' Integer # chr') est ce que vous voulez utiliser. –
Notez que si vous voulez écrire du code qui est compatible avec deux Ruby 1.8 et Ruby 1.9, vous pouvez utiliser String#each_byte
comme ceci:
$ irb
>> 'a'.each_byte.first
=> 97
Je suis coincé avec 1.8 et cela a très bien fonctionné. –
Pour ceux qui recherchent la à l'opposé de ord
. Nous avons chr
>> "A".ord
=> 65
>> 65.chr
=> "A"
Ce lien permettra à d'autres changements de 1.9 aussi: « ? C » http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l16 – Zabba