たけ(tk)です

[ruby-list:35660] ?/ の意味 にて
Tadashi Oh-Ya <toy / k-cable.co.jp> さん曰く:
> アスキー出版局の「オブジェクト指向スクリプト言語 Ruby(第1版
> 3刷)」を読んでいて、わからない部分が出てきてしまいました。
> 
> P.135 にある lndir.rb の中で、
> -----------------------------------------------------------------
>   def lndir dir                         # メイン関数
>     # (A) ソースディレクトリ名の作成
>     if dir[0] == ?/
>       newsrcdir = dir
>     else
>       newsrcdir = "../#{dir}"
>     end
> -----------------------------------------------------------------
> とあるのですが、この dir[0] == ?/ の意味がわかりません。

> dir[0]の中身は、puts dir[0]で見てみると、1文字目のASCIIコード
> (10表記)となっているようです。これが、どのように ?/ とマッチす
> るのでしょうか。

 ご察しのとおりです。

http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB

> リテラル
> 数値リテラル
	・・・
> ?a
> 
> 文字aのコード(97)

 です。

 今書いている原稿(↓)。

> ○○文字列の内部構造
> 
>  文字列の内部構造は配列に似ている。要素にあたるのは文字コードを8ビッ
ト単位で区切った数値だ(※1)。マイナスのインデックスで後ろから数えること
なども同じ。
>  文字コードから文字(1文字の文字列)にするには、Fixnum#chr(Integer#chr)が使える。
>  文字から文字コード(数値)を作るには「?」という記述法が使える。
> 
> --ruby
> #! ruby -Ks
> # 文字列の内部構造
> 
> #      012345678901
> str = "日本語とRuby"
> 
> p str[0].class  #=> Fixnum
> 
> p str[0]        #=> 147
> p str[1]        #=> 250
> p str[11]       #=> 121
> p str[-1]       #=> 121
> 
> p 121.chr       #=> "y"
> 
> p ?y            #=> 121
> --

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武