Ruby 技術メモ

文字列、%記法

投稿日:

文字列の式展開

PHPと同様にダブルクォート、シングルクォートにより文字列を表現する。
前者は変数展開あり、後者は変数展開なし。
実際には文字列内の"式展開"で、式のto_sメソッドの評価結果が文字列に展開される。
to_sメソッドを備えていれば独自クラスでも展開できる。

ただ文字列の中に変数を書いただけではダメで、変数展開用の識別子がいるんだな。

パーセント記法による式展開

シングルクォート、ダブルクォート以外を使って文字列を作ることもできる。
文字列の中でエスケープ無しでシングルクォート、ダブルクォートを使えて便利。

もともとシングルクォート、ダブルクォートの区別により式展開するしないが決まっていたが、
当然パーセント記法を使うと式展開をそのままでは選べない。
パーセントの後にq、またはQを付与することで式展開をするしないを選ぶことができる。
なお、デフォルトは式展開をする。つまり%Qと同じ。

Rubyが複雑に見えるのはコイツのせいじゃないだろうか。

文字列の型変換

文字列から整数、浮動小数点、複素数、有理数などへ変換できる。
それぞれ、to_i、to_f、to_c、to_rというメソッドが用意されている。
厄介そうなことに、型変換ができない場合、変換できるところまで変換する。
そもそも先頭の文字が変換できないなら0。

デバッグ出力と関数

文字列をデバッグ用途に出力するときはpを使う。変数内の式は展開されない。
他に、print、putsで出力できる。こちらは変数内の式が展開される。

ヒアドキュメント

変数展開なしのヒアドキュメントは以下の通り。ヒアドキュメントの開始をシングルクォートにする。
ヒアドキュメントの終了は識別子も前にスペース禁止。

変数展開ありのヒアドキュメントは以下の通り。開始をダブルクォートにする。

文字列演算

文字列は+、*に対応している。

<<により文字列連結。

比較演算

文字列の辞書順で比較する。

文字列長

.lengthメソッドにより文字列長を返す。バイト数ではなく文字数。

sprintfと%

%演算子にはsprintf相当の機能も備わっていて混乱する。
知らないと訳がわからない。

-Ruby, 技術メモ
-

Copyright© ikuty.com , 2018 AllRights Reserved Powered by AFFINGER4.