初心者向け学習方法一覧はこちら
この記事ではRubyでよく使用するメソッドについてまとめた記事です。
この記事ではサンプルコードを実行しながら説明していきます。
もし、Rubyの実行環境がない方はこちらの記事を参考に環境構築されることをおすすめします!
メソッドとは
メソッドとはよく使用する一連の手続きをクラスのごとにまとめたものです。
メソッドを活用することでコードを短くでき、可読性を上げることがができます。
メソッドを使用するには以下のようにします。
オブジェクト名.メソッド名(引数)
オブジェクト名の部分に手続きをしたい対象を指定します。
オブジェクト名は変数名と読みかえて問題ありません。
メソッド名の部分に使用するメソッドを指定します。
引数はもしメソッド中で使用したい変数があれば引数として代入することでメソッドに渡すことができます。
また、クラスに渡したい変数がない場合は(引数)の部分は省略することもできます。
文字列の長さを取得するlengthメソッドを使用する場合にはこのようにします。
example = "string example"
p example.length()
#14
p example.length
#14
それぞれのオブジェクトや変数に対して用意されているメソッドはmethodsメソッドで確認することもできます。
また、オブジェクト思考についてはこちらの記事でさらに踏み込んで解説しています。
メソッド一覧
今回紹介するメソッド一覧
型に関するメソッド
- class
- to_i
- to_s
- to_sym
文字列に関するメソッド
- length
- to_i
- gsub
- gets.chomp
数字に関するメソッド
- to_s
- odd?
- to_r
- times
配列に関するメソッド
- new
- include?
- each
- max
型に関するメソッド
class
classメソッドは型が取得できます。
型とはデータを数字や文字列などに分類したものです。
プログラミングでは型が同じもの同士で扱わないとエラーが発生しやすくなります。
classメソッドは入力したデータの型がわからない場合に使用し,、型を取得することができます。
型が取得できれば、データの種類に応じて条件分岐をすることで型を揃えることができます。
to_s
to_sメソッドは型を文字列に変換することができます。
場合に使用します。
toメソッドとclassメソッドの具体的な使用例はこのようになります。
input = 15
input_type = input.class
p input_type
if input_type = Integer
p "整数から文字列に変換します"
input = input.to_s
elsif input_type = Float
p "小数から文字列に変換します"
input = input.to_s
else
p "はじめから文字列でした"
end
p input.class
#Number
#整数から文字列に変換します
#String
to_i
to_iメソッドは型を整数型に変換することができます。
to_iメソッドは入力された文字列に四則演算をしたい場合の前処理に使用します。
to_iメソッドの使用例はこのようになります。
num_s = "5"
p num_s + 1
#no implicit conversion of Number into String (TypeError)
num_i = num_s.to_i
p num_i + 1
#6
to_sym
to_symメソッドは型をシンボルに変換することができます。
シンボルとはHashのキーに割り当てられている型です。
Hashのキーとは値を呼び出すために使用する変数のことです。
to_symメソッドはHashを文字列で呼び出したい場合に文字列をシンボルに変換するために使用します。
to_symメソッドの使用例はこのようになります。
hash = {key0:50,key1:1000}
key = "key0"
p hash[:key]
#nil
key_sym = key.to_sym
p hash[key_sym]
#50
文字列に関するメソッド
length
lengthメソッドは文字列の長さを取得することができます。
lengthメソッドはパスワードの長さが条件を満たしているのか確認したい場合等に使用します。
lengthメソッドの使用例はこのようになります。
passward = "pass1234567"
if passward.length > 10
p "OK"
else
p "パスワードの文字数が足りません"
end
#OK
to_i
to_iメソッドは型を整数型に変換することができます。
to_iメソッドは入力された文字列に四則演算をしたい場合の前処理に使用します。
to_iメソッドの使用例はこのようになります。
num_s = "5"
p num_s + 1
#no implicit conversion of Number into String (TypeError)
num_i = num_s.to_i
p num_i + 1
#6
gsub
gsubメソッドは文字列の中の引数で指定した文字列と一致した部分を置き換えることができます。
gsubメソッドは不適切な部分がある文字列から不適切な部分を隠したい場合等に使用します。
gsubメソッドの使用例はこのようになります。
str_example = "お前はばかだ"
str_trim = str_example.gsub("ばか","[不適切な言葉]")
p str_trim
#お前は[不適切な言葉]だ
gets.chomp
gets.chompメソッドは文字列の入力をプログラムの実行時に受け付けることができます。
正確にはgetメソッドとchompメソッドで別れています。
しかし、getsメソッドのみだと仕様上、改行コードが最後に入力されてしまいます。
最後に入力された改行コードを無視するため、chompメソッドを使用しています。
gets.chompメソッドはターミナルで動くアプリを作るときにユーザーがターミナルに入力した文字列を取得したい場合に使用します。
gets.chompメソッドの使用例はこのようになります。
input = gets.chomp
#ターミナルに「sample」と入力した場合
p input + "と入力されました。"
#sampleと入力されました。
数字に関するメソッド
to_s
to_sメソッドは型を文字列にすることができます。
取得した数字を文字列と組み合わせてputsで出力したい場合に使用します。
使用例はこのようになります。
num = 5
num_s = num.to_s
p num + "です"
#String can't be coerced into Numeric (TypeError)
p num_s + "です"
#5です
odd?
odd?メソッドは偶数かどうかを判別することができます。
奇数の場合にはtrue、偶数の場合にはfalseを返します。
odd?メソッドは偶奇で処理を変えたい場合に使用します。
1から10までの数字にodd?メソッドを使用した例はこのようになります。
for i in 1..10 do
if i.odd?
p i.to_s + "は奇数です"
else
p i.to_s + "は偶数です"
end
end
#"1は奇数です"
#"2は偶数です"
#"3は奇数です"
#"4は偶数です"
#"5は奇数です"
#"6は偶数です"
#"7は奇数です"
#"8は偶数です"
#"9は奇数です"
#"10は偶数です"
to_r
to_rメソッドは文字列を分数にすることができます。
分数表記された文字列に対して四則演算をしたい場合に使用します。
使用例はこのようになります。
odt = "1/2"
frac = odt.to_r
p frac
#(1/2)
p frac + 1
#(3/2)
times
timesメソッドは引数の動作を数字分繰り返すことができます。
timesメソッドは繰り返したい回数が決まっている場合に使用します。
timesメソッドの使用例はこのようになります。
for i in 5.times do
p i
end
#0
#1
#2
#3
#4
また、インデックス番号iが不要であれば省略することも可能です。
3.times do
p "Hello World"
end
#"Hello World"
#"Hello World"
#"Hello World"
配列に関するメソッド
new
newメソッドはクラスを生成することができます。
「[ ]」を使用して生成する方法が一般的ですが、あらかじめデフォルト値を設定したい場合にはnewメソッドを使用します。
newメソッドの引数には第一引数に配列の大きさを整数値で、第二引数にはデフォルト値を入力します。
newメソッドの使用例はこのようになります。
array = Array.new(5,"default")
p array
#["default", "default", "default", "default", "default"]
include?
include?メソッドは指定の要素が配列にはいっているのか判別することができます。
要素が見つかればttrueを、要素がなければfalseを返します。
include?メソッドは配列の中から特定の要素の有無を検索したい場合に使用します。
include?メソッドの使用例はこのようになります。
array = ["0","1","3"]
p array.include?("3")
#true
p array.include?("3")
#false
each
eachメソッドは配列の要素それぞれについて繰り返し処理を行うことができます。
eachメソッドは配列の要素それぞれに対して処理をしたい内容が変化する場合に使用します。
eachメソッドの使用例はこのようになります。
array = ["0","1","3"]
array.each do |i|
p i
end
#"0"
#"1"
#"3"
max
maxメソッドは配列の中で最大の数字を取得します。
maxメソッドは最高得点が知りたい場合等に使用します。
maxメソッドの使用例はこのようになります。
lis = [10,13,9,8]
max = lis.max
p "最高得点は" + max.to_s
#"最高得点は13"
まとめ
今回はよく使用するメソッドについて紹介しました。
積極的にメソッドを活用して短く、読みやすいコードを目指しましょう。
また、ほかにも初学者に向けた記事を解説しています。
こちらの記事も是非どうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け