【WIP】Rubyメソッド忘却防止
scanメソッド
文字列の中にscanで指定した形にマッチした文字、文字列をArrayにして返す
"Hello World".scan(/../) # => ["He", "ll", "o ", "Wo", "rl" ]
-----------------------------------------------------------------------------
chrメソッド
数値を文字コードと見たとき、対応する文字に変換してくれる。
65.chr #=> "A"
-----------------------------------------------------------------------------
ordメソッド
文字を文字コードに対応した整数に変換して返す。
"A".ord #=> 65
-----------------------------------------------------------------------------
invertメソッド
ハッシュのキーと値を変換して返す
{a: 'Apple', b: 'Lemon', c: 'Melon'}.invert
#=> {"Apple"=>:a, "Lemon"=>:b, "Melon"=>:c}
-----------------------------------------------------------------------------
rejectメソッド
各要素に対してブロックを評価して、真の値は返さず、偽の値の要素のみを返す。(reject => 真の値をreject)→非破壊的メソッド→reject!で破壊的に。
{:a=>"Apple", :b=>"Lemon", :c=>"Melon"}.reject {|key, value| key == :a}
#=> {:b=>"Lemon", :c=>"Melon"}
---------------------------------------------------------------------------
delete_ifメソッド
rejectメソッドの破壊的メソッドバージョン
---------------------------------------------------------------------------
mergeメソッド
2つのハッシュをcombineする。キーが同じものは上書きする(非破壊的)→ merge!:破壊的
h1 = { "a" => 100, "b" => 200 }
h2 = { "b" => 246, "c" => 300 }
h1.merge!(h2) #=> {"a"=>100, "b"=>246, "c"=>300}
3つ以上のハッシュをmergeする時:
h1.merge(h2, h3, h4) → h4が同じキーがある時は優先される
updateメソッド
mergeの破壊的メソッドバージョン
---------------------------------------------------------------------------
sortメソッド
配列の内容を順番に並べ替える。
array = [ "d", "a", "e", "c", "b" ]
array.sort #=> ["a", "b", "c", "d", "e"]
---------------------------------------------------------------------------
Dirクラス→標準クラス
Dir(Directory)ディレクトリーを操作するメソッドがある。
Dir.pwd カレントディレクトリのフルパスを文字列で返す
Dir.open
Dir.rmdir ディレクトリを削除
Dir.chdir カレントディレクトリを path に変更
IOクラス
"r", RDONLY
ファイルを読み込みモードでオープンします。(デフォルトのモード)
-------------------------------------------------------------------------
"w", WRONLY|CREAT|TRUNC
ファイルを書き込みモードでオープンします。オープン時にファイルがすでに存在していればその内容を空にします。
"a", WRONLY|CREAT|APPEND
ファイルを書き込みモードでオープンします。出力は 常に ファイルの末尾に追加されます。例えば、ファイルオープン中にファイルのサイズが小さくなってもその末尾に出力されます。
以上の3つの後に "+" があれば、ファイルは読み書き両用モード (RDWR) でオープンされます。
"r+"
ファイルの読み書き位置は先頭にセットされます。
"w+"
"r+" と同じですが、オープン時にファイルがすでに存在していればその内容を空にします。
"a+"
"r+"と同様、ファイルの読み込み位置は先頭にセットされますが、書き込みは常にファイル末尾に行われます。書き込みは IO#seek などの影響を受けません。
-----------------------------------------------------------------------------
selectメソッド # find_allメソッド
select, find_allはブロックの真になる要素を全て返す。
[1, 2, 3, 4, 5, 6, 7, 8, 9].find_all { |number| number.odd?}
#=> [1, 3, 5, 7, 9]
これに比べて、findメソッドはブロックの真になる要素の一つめだけ返す。
-----------------------------------------------------------------------------
collectメソッド # mapメソッド
各要素に対してブロックを評価した結果を全て含む配列を返す
[1, 2, 3, 4, 5, 6, 7, 8, 9].map { |number| number * 10}
#=> [10, 20, 30, 40, 50, 60 ,70, 80, 90]
-----------------------------------------------------------------------------
%記法 これを使うことで、文字列の生成を ””、’’などを使うことなく出来る。
%q, %Q 文字列の生成(querry)
%q(hello world) #=> "hello world"
%w, %W 配列の生成
%w(hello world !) #=> ["hello", "world", "!"]
%r 正規表現の生成
%r(/d) #=> /\/d/
%s シンボルの生成
%s(number) #=> :number
%I %i シンボルの配列を生成
%I(number fruit) #=> [:number, :fruit]
%x コマンドを実行
-----------------------------------------------------------------------------
sliceメソッド
指定された要素を取り出す
["a", "b", "c", "d", "e", "f", "g"].slice(1, 2) #=> ["b", "c"] //1から2個
["a", "b", "c", "d", "e", "f", "g"].slice(1..4) #=> ["b", "c", "d", "e"]
//1から4まで
----------------------------------------------------------------------------
chompメソッド
指定する改行コードを取り除いた文字列を生成して返す。
"Hello World\n".chomp #=>"Hello World"
----------------------------------------------------------------------------
文字列の最後の文字を取り除いた文字列を返す。
"Hello World".chop #=> "Hello Worl"
----------------------------------------------------------------------------