私は、それがどのようなアプリケーションを持っているのだろうかと思っています。私はプレフィックス1.9を信じていますか?その文字の文字列バージョンを返します。接頭辞のポイントは何ですか? Ruby 1.9の演算子
?a #=> "a"
?\t #=> "\t"
これは 'a'または '\ t'の略ですか?
私は、それがどのようなアプリケーションを持っているのだろうかと思っています。私はプレフィックス1.9を信じていますか?その文字の文字列バージョンを返します。接頭辞のポイントは何ですか? Ruby 1.9の演算子
?a #=> "a"
?\t #=> "\t"
これは 'a'または '\ t'の略ですか?
を文字列を返します。 1.9より前のバージョンでは、?
は、問題の文字のASCII値に対応するFixnum
に評価されました。 String
にインデックスするもFixnum
を返しました。だから、
、あなたは文字列の3番目の文字が文字だった場合、例えば、チェックしたい場合は、Ruby 1.9ので
s[2] == ?a
をするだろう「」、文字列はもはや配列として扱われますfixnumの中ではなく、文字の反復子(実際には単一文字列)として。その結果、上記のコードはもう機能しません。s[2]
は文字列、?a
は数字になり、これらの2つは決して等しくありません。
したがって、?
も変更され、1文字の文字列に評価され、上記のコードは引き続き機能します。
あなたは正しいです、あなたは文字の文字列の値を取得します。以前は文字のASCII値を取得するために使用されていました。ルビー1.8で
およびそれ以前の
?a
'' は文字のASCIIバージョンを返します。
1.9で、それはちょうどそれが後方互換性のために、主だ(あなたが想定してきたと同じように)