1.6. Konwersja między znakami a kodami

Problem

Chcemy otrzymać kod ASCII danego znaku lub przetransformować kod ASCII znaku w sam znak.

Rozwiązanie

Kod ASCII znaku możemy poznać za pomocą operatora ?:

?a                       # => 97
?!                       # => 33
?\n                      # => 10

W podobny sposób możemy poznać kod ASCII znaku wchodzącego w skład łańcucha — należy wówczas wyłuskać ów znak z łańcucha za pomocą indeksu:

'a'[0]                   # => 97
'kakofonia'[1]           # => 97

Konwersję odwrotną — kodu ASCII na znak o tym kodzie — realizuje metoda chr, zwracająca jednoznakowy łańcuch:

97.chr                  # => "a"
33.chr                  # => "!"
10.chr                  # => "\n"
0.chr                   # => "\000"
256.chr                 # RangeError: 256 out of char range

Dyskusja

Mimo iż łańcuch jako taki nie jest tablicą, może być utożsamiany z tablicą obiektów Fixnum

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.