2011-08-08 10 views
1

私は、それがどのようなアプリケーションを持っているのだろうかと思っています。私はプレフィックス1.9を信じていますか?その文字の文字列バージョンを返します。接頭辞のポイントは何ですか? Ruby 1.9の演算子

?a #=> "a" 
?\t #=> "\t" 

これは 'a'または '\ t'の略ですか?

答えて

9

を文字列を返します。 1.9より前のバージョンでは、?は、問題の文字のASCII値に対応するFixnumに評価されました。 StringにインデックスするFixnumを返しました。だから、

、あなたは文字列の3番目の文字が文字だった場合、例えば、チェックしたい場合は、Ruby 1.9ので

s[2] == ?a 

をするだろう「」、文字列はもはや配列として扱われますfixnumの中ではなく、文字の反復子(実際には単一文字列)として。その結果、上記のコードはもう機能しません。s[2]は文字列、?aは数字になり、これらの2つは決して等しくありません。

したがって、?も変更され、1文字の文字列に評価され、上記のコードは引き続き機能します。

1

あなたは正しいです、あなたは文字の文字列の値を取得します。以前は文字のASCII値を取得するために使用されていました。ルビー1.8で

2

およびそれ以前の

?a 

'' は文字のASCIIバージョンを返します。

1.9で、それはちょうどそれが後方互換性のために、主だ(あなたが想定してきたと同じように)

関連する問題