メソッド
size(要素数を返す)
code:rb
# 配列
# ハッシュ
{:key1 => 1, :key2 => 2}.size #=> 2 select!・find_all(一致した要素の配列を作成する)
code:rb
p array.select { |num| num > 3 }
compact(nilを取り除いた配列を返す) 非破壊
code:rb
p array.compact
collect / map(ブロックの戻り値を集めた要素で配列を作る)
code:rb
flatten(配列を平坦化した配列を返す)
code:rb
p array.flatten
join(配列の要素を文字列に結合した配列を返す(平坦化もする)) 非破壊的
code:rb
p array.join
p array.joi("-")
clear(配列・ハッシュの中身を空にする)破壊的
code:rb
hash = {:a => ruby, :b => java}
hash.clear
chop(文字列の末尾の一文字を削除する(\r\nのみ一文字として解釈(chompも同様))非破壊的
code:rb
a = "abc\n\r\n"
a.chop
slice非破壊的
code:rb
string = "Learn Ruby"
p array.slice(0, 2)
p array.slice(1)
p string.slice(0, 3)
split(第1引数に文字列を何で区切るか、第2引数に何要素の配列にするか)非破壊的
code:rb
str = "a,b,c,d"
p str.split(/,/, 2)
concat(String・Arrayを連結)破壊的
code:rb
a.concat(b)
readline (一行の読み込み)
一行の読み込みに成功すると文字列を返す
EOFに到達するとEOFError
gets(一行の読み込み)
EOFに到達するとnilを返す
readlines(全て読み込む)
一行を要素とした配列
inject(繰り返しメソッド(sumに0(自動で値はプラスされない)、valに配列の要素))
code:rb
array.inject (0){ |sum,val| p sum+=num}
# =>
2
6
12
20
a
find / detect (ブロックの評価の結果最初の真の値を返す)
code:rb
# => 3
# => nil
dup(オブジェクトをコピーし、新しくオブジェクトを作る(object_idは異なる))
code:rb
bar = foo
baz = foo.dup
p foo
p bar
p baz
# =>
eql? / equal? (同一か判断)
code:rb
foo = "a"
bar = foo
baz = foo.dup
# =>
true
false
reject! / delete_if (真になった要素を削除し、偽の要素の配列を作成する)
code:rb
a.reject! {|n| n % 2 == 0}
delete_ifは常にselfを返す
reject!は1以上削除されればselfを、0の場合nilを返す
delete 破壊的
product(引数の要素を各要素に付け加える)破壊的
code:rb
# => [1,3,5,1,3,6,1,4,5,1,4,6, # 2,3,5,2,3,6,2,4,5,2,4,6] each_cons(n要素ずつに区切り、出力)
code:rb
(1..10).each_cons(3){|v| p v }
invert (ハッシュの値とキーを入れ替える(重複した場合最後の値が優先される))非破壊的
code:rb
h = { "a" => 0, "b" => 100, "c" => 200, "d" => 300, "e" => 300 }
p h.invert
#=> {0=>"a", 100=>"b", 200=>"c", 300=>"e"} strip(文字列先頭と末尾の空白文字を削除する(空白文字:\t \r \n \f \v)
code:rb
p " abc \r\n".strip #=> "abc" p "abc\n".strip #=> "abc" p " \0 abc \0".strip # => "\000 abc" # 右側のみ "\0" も取り除く
width_index(n)(nが初期値)
step
code:rb
2.step(10, 3) do |num|
puts num
end
# 5
# 8
obj.step(limit, step) objにstepを足してlimitまで行く
transpose(配列を縦に見て配置し直す)
code:rb
].transpose
#=> 1, 1, 2, 2], [3, 4, 3, 4 zip 破壊的
code:rb
p arr
String.index
code:rb
p "abc".index("b")
p "abab".index("a",1)
# 2
String.upcase破壊的
partition 破壊的
code:rb
a,b = (1..5).partition(&:odd?)
p a,b