54
68

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】メソッド一覧

Last updated at Posted at 2020-03-06

#はじめに
初学者が学習の為にRubyのメソッド(配列やハッシュに関係するメソッドを中心に)をまとめました。

##メソッド一覧
###keysメソッド
hashからkeyを取り出す

> x = { "ruby"=>1 , "php"=>2 , "java"=>3 }
=> {"ruby"=>1, "php"=>2, "java"=>3}
> x.keys
=> ["ruby", "php", "java"]

###valuesメソッド
hashからkeyを取り出す

> x = { "ruby"=>1 , "php"=>2 , "java"=>3 }
=> {"ruby"=>1, "php"=>2, "java"=>3}
> x.values
=> [1, 2, 3]

###storeメソッド
hashにkeyと値を追加する

> x = { "ruby"=>1 , "php"=>2 , "java"=>3 }
=> {"ruby"=>1, "php"=>2, "java"=>3}
> x.store("python",4)
=> 4
> x
=> {"ruby"=>1, "php"=>2, "java"=>3, "python"=>4}

###selectメソッド
指定条件に合致するKeyと値を表示する

> x = { "ruby"=>1 , "php"=>2 , "java"=>3 }
=> {"ruby"=>1, "php"=>2, "java"=>3}
> x.select {|k, v| v >= 3 }
=> {"java"=>3}

#以下も同様
 x.select do |k, v|
  v >= 3
 end

###to_aメソッド
レシーバー自身を返すメソッド。
範囲オブジェクトを、配列に変換する際に使用する場合が多い。
配列を2次元配列として返す。

> X = 1..10
=> 1..10
> X.to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

> x = { "ruby"=>1 , "php"=>2 , "java"=>3 }
=> {"ruby"=>1, "php"=>2, "java"=>3}
> x.to_a
=> [["ruby", 1], ["php", 2], ["java", 3]]

###to_hメソッド
2次元配列をハッシュ化する。
レシーバを[key, value] のペアの配列として、Hash を返す。

> x = [ ["ruby",1] , ["php",2] , ["java",3] ]
=> [["ruby", 1], ["php", 2], ["java", 3]]
> x.to_h
=> {"ruby"=>1, "php"=>2, "java"=>3}

array = User.all
array.map { |user| [user.id, user.name] }.to_h
> {1=>"sample", 2=>"sampleb", 3=>"Guest User", 4=>"test user"}

###to_iメソッド
integerクラス(整数)に変換する

> x = "123"
=> "123"
> x.to_i
=> 123

###*メソッド
四則演算の掛け算をするメソッド
Integerクラスの *メソッドは引数にIntegerクラスのインスタンスを与えなければいけない。
つまり右辺に整数を書く必要がある。

puts "*" * 4
> ****
=> nil

puts 4 * "*"
TypeError: String can't be coerced into Integer
from (pry):18:in `*'

###compactメソッド
配列のnill要素を削除する

> x = ["ruby","php",nil,"java",nil]
=> ["ruby", "php", nil, "java", nil]
> x.compact
=> ["ruby", "php", "java"]

###uniqメソッド
配列内の重複要素を削除する

> x = ["ruby","php",nil,"java",nil,"ruby","java"]
=> ["ruby", "php", nil, "java", nil, "ruby", "java"]
> x.uniq
=> ["ruby", "php", nil, "java"]

###joinメソッド
配列の要素を結合して一つの文字列にする
配列の要素が配列であった場合平坦化する

#結合
> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.join
=> "rubyphpjava"

#引数で区切る
> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.join(",")
=> "ruby,php,java"

#平坦化
> x = [["ruby","php"],["python","java"]]
=> [["ruby", "php"], ["python", "java"]]
> x.join(" ")
=> "ruby php python java"

###pushメソッド
配列の末尾に要素を連結する

> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.push("python")
=> ["ruby", "php", "java", "python"]

###popメソッド
配列の末尾の要素を削除する
削除された要素は、popメソッドの戻り値として返る

> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.pop
=> "java"
> x
=> ["ruby", "php"]

#引数に代入した数字の分要素を削除
> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.pop(2)
=> ["php", "java"]
> x
=> ["ruby"]

###shiftメソッド
配列の先頭の要素を削除
配列の先頭の要素を取り出す

> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.shift
=> "ruby"
> x
=> ["php", "java"]

#引数に代入した数字の分要素を削除
> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.shift(2)
=> ["ruby", "php"]
> x
=> ["java"]

#要素を取り出す(popメソッドでも要素を取り出すことができる)
> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> X = x.shift
=> "ruby"
> X
=> "ruby"

###unshiftメソッド
配列の先頭に要素を挿入する

> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.unshift("python")
=> ["python", "ruby", "php", "java"]

###splitメソッド
指定した区切り文字で対象となる文字列を分割して配列にする

> x = "ruby, php, java"
=> "ruby, php, java"
> x.split(',')
=> ["ruby", " php", "java"]

#引数で指定しないと一文字ずつ配列にする
> x = "ruby"
=> "ruby"
> x.split('')
=>["r","u","b","y"] 

###sliceメソッド
配列や文字列から指定の要素を切り出す

> x = ["ruby", "php", "java"]
=> ["ruby", "php", "java"]
> x.slice(0)
=> "ruby"

#「指定位置から指定の数」の要素をまとめて取りだすこともできる
#第一引数でインデックスを指定して第二引数で要素数を指定する
> x.slice(0,2)
=>["ruby", "php"]

###sortメソッド
配列の順番を並び替える

> x = [3,5,1,25,8]
=> [3,5,1,25,8]
> x.sort
=> [1, 3, 5, 8, 25]
#reverseメソッドで降順も可能
> x.sort.reverse
=> [25, 8, 5, 3, 1]

###pluckメソッド
引数に指定したカラムの配列を返す(Railsのメソッド)

#Userモデルのnameカラムに "Itiro" "jiro" "taro" が入っている場合
=> User.pluck(:name)
=> ["Itiro","jiro","taro",]

###chompメソッド
Stringクラスのメソッドで、文字列の末尾から改行コードを取り除いた文字列を返す

> a = "ruby\n"
=> "ruby\n"
> p a
"ruby\n"
=> "ruby\n"
> p a.chomp
"ruby"
=> "ruby"
#改行コードのない文字列に対して破壊的メソッドを使うとnilが返る
> a.chomp!
=> "ruby"
> a.chomp!
=> nil

###transposeメソッド
Arrayクラスのメソッドで、行列の転置(行と列の入れ換え)を行う。

key = [1, 2, 3]
value = ["gold", "silver", "bronze"]
ary = [key, value].transpose
p ary
=>[[1, "gold"], [2, "Silver"], [3, "Bronze"]]


p [[1,2],
   [3,4],
   [5,6]].transpose
 => [[1, 3, 5], [2, 4, 6]]

##最後に
誰かのお役にたてれば幸いです。
間違えている部分があればコメントお願いいたします。

参考にした記事
https://tech.raksul.com/2018/02/06/ruby_array_to_hash/
https://programming-beginner-zeroichi.jp/articles/93

54
68
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
54
68

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?