Ruby リファレンスを読んだのでメモ
/
from Qiita: Rubyリファレンスを読んでの、メモ
字句構造
予約語
エスケープ方法はあるが、使わない方が身のため。
変数と定数
クラス変数@@
@@で始まる変数はクラス変数。親クラスに、子クラスですでに定義されている同名のクラス変数を追加したら、 子クラスのクラス変数が上書きされる。
定数
- アルファベット大文字で始まる
- 定義されている定数に代入しようとすると、警告を出すが、代入される
- クラス定義の外(トッ プレベル)で定義された定数は Object に所属する
- あるクラスまたはモジュールで定義された定数を外部から参照するためには
::
演算子を用いる - Object クラスで定義の定数(トップレベルの定数と言う)を確実に参照するには左辺無し
- あるクラスまたはモジュールで定義された定数を外部から参照するためには
リテラル
バックスラッシュ記法
文字列中でバックスラッシュの後に記述する文字によって、意味を持たせる事ができます。
- \t タブ(0×09)
- \v 垂直タブ(0×0b)
- \n 改行(0×0a)
- \e エスケープ (0×1b)
- \s 空白 (0×20)
- \nnn 8 進数表記 (n は 0-7)
- \xnn 16 進数表記 (n は 0-9,a-f)
%記法
バックスラッシュの数をコードから減らす効果。配列式では、文字列の配列やシンボルの配列を簡単に表現できる
- %!STRING! または %Q!STRING!: ダブルクォート文字列
- %q!STRING! : シングルクォート文字列
- %w!STRING! : 要素が文字列の配列(空白区切り)
- %W!STRING! : 要素が文字列の配列(空白区切り)。式展開、バックスラッシュ記法が有効
- %s!STRING! : シンボル。式展開、バックスラッシュ記法は無効
- %i!STRING! : 要素がシンボルの配列(空白区切り)
- %I!STRING! : 要素がシンボルの配列(空白区切り)。式展開、バックスラッシュ記法が有効
演算子
優先順位
&& > || > and or
再定義できない演算子
多重代入
&&と||
&&
:左辺を評価し、結果が偽なら、その値(つまり nil か false) を返す。左辺の評価結果が真なら、右辺を評価しその結果を返す||
:左辺を評価し、結果が真なら、その値を返す。左辺の評価結果が偽なら、右辺を評価しその評価結果を返す
条件演算子
制御構造
unless
unless は if と反対で、条件式が偽の時に then 次の式を評価。elsif を指定できない。
制御構造(ifなど)の修飾子
式 if 式の様に、一行で書くやつ。 右辺の条件が真/偽の時に、左辺の式を評価してその結果を返す。
retry
rescue 節で begin 式からもう一度実行するのに使用。 処理が成功するまで処理を繰り返すようなループを作れる。
クラス/メソッドの定義
呼び出し制限
- public : 制限なし
- private : 関数形式でしか呼び出せない
- protected : ソッドを持つオブジェクトが self であるコンテキストでのみ呼び出し可能
- nitialize は定義する場所に関係なく常に private
alias
メソッドあるいはグローバル変数に別名をつけます。メソッド名には識別子そのものかリテラル/シンボルを指定
undef メソッド名
メソッドの定義を取り消す
defined? 式
式が定義されていなければ、偽を返す。定義されていれば式の種別を表す文字列を返す