Ruby Silver受験するにあたり、ややこしいメソッドがいっぱいあり、なかなか覚えられないので、アウトプット目的で本記事に残します。
予約語
nil, true, false, not, or, and
BEGIN, END, begin, end, do, then, yield, rescue, ensure
class, module, def, defined?, alias, undef, super, self, return
while, until, for, in, break, next, redo, retry,
case, when, if, unless, else, elsif,
__LINE__, __FILE__, __ENCODING__
数値リテラル
2進数 binary 0b 0b10 => 2
8進数 octal 0oまたは0 0o10 => 8
10進数 decimal 0d 0d10 => 10
16進数 hexadecimal 0x 0x10 => 16
「?」+文字リテラル
?A => "A" #String
?\C-v => "\u0016" #Ctrl+vを表すString
?\M-a => "\xE1" #Alt+aを表すString
?\n => "\n" #改行を表すString
Rangeクラス
(1..5) => 5を含める
(1...5) => 5を含まない
演算子
|| 演算子 (論理和/または)
a と b がどちらかが真のとき、最初に評価された a を出力する
・左辺が true の場合、右辺は実行しない
・左辺が false の場合、右辺は実行する
&& 演算子 (論理積/かつ)
a と b がどちらも真のとき、最後に評価された b を出力する
・左辺が true の場合、右辺は実行する
・左辺が false の場合、右辺は実行しない
例題
true || 2 # => true
false || 2 # => 2
true && 2 # => 2
false && 2 # => false
条件式が複数ある三項演算子
条件式1 ? 条件式2 ? "A" : "B" : "C"
=
条件式1 ? (条件式2 ? "A" : "B" ): "C"
こうすると見やすい
条件式1 | 条件式2 | 出力 |
true | true | A |
true | false | B |
false | false | C |
false | true | C |
a = [1, 2, 3, 5, 8]
b = [1, 3, 6, 7, 8]
c = false || true ? true && false ? a | b : a & b : b ;
c = false || true ? (true && false ? a | b : a & b ): b ;
#()の条件式2から
# true && false => false
# a | b => [1, 2, 3, 5, 6, 7, 8]
# a & b => [1, 3, 8]
#false ? a | b : a & b => a & b => [1, 3, 8]
# 条件式1
# false || true => true
# true ? a & b : b => [1, 3, 8]
Overrideできない演算子
・代入演算子(自己代入を含む) = +=
・論理演算子 && || and or not
・スコープ演算子 ::
・範囲演算子 .. …
・条件演算子 ?:
優先度
高>>>>>>>低
+ == ||
%を使ったString
p %(a b c) # => "a b c"
p %W(a b c) # => ["a", "b", "c"]
p %s(a) # => :a
ファイル操作関連
r | 読み込み | |
w | 書き込み | 既存ファイルの場合はファイルの内容が空になる |
a | 追記 | 追加位置はファイルの末尾 |
r+ | 読み書き | ファイルの読み書き位置は先頭 |
w+ | 読み書き | 既存ファイルの場合はファイルの内容が空になる |
a+ | 読み書き | ファイルの読み込み位置は先頭、書き込み位置は末尾 |
Arrayオブジェクト
pop | selfの末尾より1要素を取り出す(LIFO)。 |
push | selfの末尾に引数の値を追加する(LIFO)。 |
unshift | selfの先頭へ引数の値を追加する(FIFO)。引数が指定されていない場合は何もしない |
shift | selfの先頭より1要素を取り出す(FIFO)。 |
Stringオブジェクト
strip | 文字列の先頭と末尾の空白文字(\t\r\n\f\v)を取り除く |
chop | 改行文字を削除 |
chomp | 文字列末尾の文字を1文字削除。ただし、文字列末尾が\r\nの場合は、2文字とも削除 |
IOクラス
ファイルを読み取る
readlines .. ファイルを全て読み込み、その各行の配列を返す
1行読み込む
gets .. EOFに到達した時 => nil
readline .. EOFに到達した時 => EOFError
ファイルポインタの移動や設定
rewind, pos, seek
Hashメソッド
Hash#hash_key?(key) => bool
Hash#include?(key) => bool
Hash#key?(key) => bool
Hash#member?(key) => bool
例外クラス
SyntaxError | 文法エラーがあった場合 |
SignalException | 捕捉していないシグナルを受けた場合 |
ArgumentError | 引数の数が合わない場合や、値が正しくない場合 |
RuntimeError | 特定の例外クラスには該当しないエラーが発生した場合や例外クラスを省略したraiseの呼び出し |
NameError | 未定義のローカル変数や定数を参照した場合 |
NoMethodError | 未定義のメソッドを呼び出した場合 |
ZeroDivisionError | 整数に対し整数の0で除算を行なった場合 |
EncodingError | エンコーディング関連の例外の基底クラス。 |
IOError | 入出力でエラー |
IndexError | 添字が範囲外の時に発生 |
KeyError | Hash#fetchなどでkeyに対応するvalueがない場合に発生 |
Dirクラス
Dir.open | 開く |
Dir.pwd Dir.getwd | カレントディレクトリの取得 |
Dir.chdir | カレントディレクトリを指定パスに変更 |
Dir.mkdir | 新規作成 |
Dir.rmdir Dir.unlink Dir.delete | 削除 |
同じ、または似ているメソッド
collect | map |
collect_concat | flat_map |
count | size, length |
detect | find |
each_cons | each_slice |
each_with_object | inject, reduce |
entries | to_a |
delete_at | slice! |
delete_if | reject! |
keep_if | select! |
select | find_all |
update | merge! |
広告

この記事がおもしろかったよ!参考になったよ!と言う方は、購入しなくてもいいので、ワンクリックだけでもよろしくお願いします!
ブログ記事を書く励みになります!
参考記事


宣伝

ブログ記事の応援もよろしくお願いします!