LoginSignup
6
3

More than 5 years have passed since last update.

Ruby技術者認定試験 Silver (2.1): Rubyの予約語

Last updated at Posted at 2017-12-10

まえがき

Ruby技術者認定試験Silverの試験勉強の一環。
Rubyの予約語についてはすでに先達がおられます。
  Ruby 予約語
カテゴリ分けと説明(Rubyリファレンスマニュアル(2.1)に基づく)
をつけることで差別化したつもりです。

説明は一行で統一したかったのですが、制御構造とかはまとめきれませんでした。

演算子式

and
  論理積(かつ)
or
  論理和(または)
not
  否定(ではない)

変数と定数 (擬似変数)

self
  現在のオブジェクト
nil
  NilClassクラスのインスタンス
true
  TrueClassクラスのインスタンス
false
  FalseClassクラスのインスタンス
__FILE__
  現在のソースファイル名
__LINE__
  現在のソースファイル中の行番号
__ENCODING__
  現在のソースファイルのスクリプトエンコーディング

制御構造

do
  do ... end でブロックを示す。
  while, until, for では do を省略できる。
end
  ブロック構造を終える(Ruby用語集より)

(条件分岐)
if
  式  :右にある式を評価した結果が真であるとき、then以下の式を評価
  修飾子:右辺の条件が成立するとき、左辺の式を評価してその結果を返す。
then
  if, unless と共に使う。省略可能
elsif
  if と一緒に使う。ifの条件式が偽のときにelsifの条件を評価する。
  unlessに対しては指定できない。
else
  if, unless と一緒に使う。
  全ての if と elsif の条件式が偽であったとき else 節があればその式が評価される。
  unless の条件式が真であったとき else 節があればその式が評価される。
unless
  式  :右にある式を評価した結果が偽であるとき、then以下の式を評価
  修飾子:右辺の条件が成立しないとき、左辺の式を評価してその結果を返す。
case
  後に置いた式に対する一致判定による分岐を行う。
when
  case式と一緒に使う。後に置いた式とcaseが指定した式を比較

(繰り返し処理)
while
  後に置いた式を評価した値が真の間、本体を繰り返し実行
until
  後に置いた式を評価した値が真になるまで、本体を繰り返して実行
for
in
  以下の形で式を評価した結果のオブジェクトの各要素に対し本体を繰り返し実行
  for lhs... in 式 [do]
   式..
  end

break
  最も内側のループを脱出する。
next
  nextはもっとも内側のループの次の繰り返しにジャンプする。
redo
  ループ条件をチェックせず、現在の繰り返しをやり直す
retry
  rescue節でbegin式をはじめからもう一度実行する。
  ※筆者注:リファレンス上でも繰り返しの項目に分類されています。

(例外処理)
begin
  例外処理の開始を示す。
rescue
  例外を捕捉
ensure
  begin式を終了する直前に必ず評価される。
(その他)
return
  式の値を戻り値としてメソッドの実行を終了する。
BEGIN
  初期化ルーチンを登録(トップレベル以外で書くとエラー)
END
  後始末ルーチンを登録

メソッド呼び出し

super
  現在のメソッドがオーバーライドしているメソッドを呼び出す。
yield
  ブロック付きメソッドでブロックを呼び出す。

クラス/メソッドの定義

class
  クラスを定義する。
module
  モジュールを定義する。
def
  メソッドを定義する。
defined?
  式が定義されていなければ偽、定義されていれば式の種別を表す文字列を返す
undef
  メソッドの定義を取り消す。
alias
  メソッド、グローバル変数に別名をつける

オマケ:予約語っぽいけど予約語じゃないもの

raise
  Kernel.#raise 例外を発生させる
include
  Module#include クラスに機能を追加
extend
  Object.extend 特定のオブジェクトだけにモジュールの機能を追加
catch
  Kernel.#catch throw との組み合わせで大域脱出を行う。
throw
  Kernel.#throw catchとの組み合わせで大域脱出を行う。
__END__
  プログラムの終わりを示す(前後に空白があると認識されない)

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3