Ruby お勉強開始 (文字列をchar配列のように使いたい)
今日から Ruby の勉強を開始しました。
早速手始めに、BitIO class を作ろうとして、
データ配列(とりあえず String を使ってみた。Array は冗長っぽいので) から
特定の文字をアスキー値で抜き出す所ではまり中。
公式マニュアルの文字列の説明だと
self[nth] nth 番目のバイトを整数(文字コード)で返します p 'bar'[2] # => 114
なんだけど、実際に試すと。
#! /usr/bin/ruby $s = "foobaa" $c = $s[0] p $s p $c
"foobaa" "f"
何故か、数値じゃなくて(1文字の)文字列が出てきます。
実際、$c >> 8 とかすると文字列でシフトするなって怒られる。
うーむ。謎。
文字列リテラルの罠かもと疑って
$s = String::new("foobaa");
したけど変わらず。
そもそも、やり方が間違えている気もするので、
File::getc 辺りの実装を覗いてみますか…
version の問題でした
ruby 1.8.5 だと、
"foobaa" 102
となります。
自分使ってるの 1.9.1p129 なもので…
てな訳で 1.9 で新設された .ord メソッドで解決です。
m師匠に感謝。