Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

メソッド定義

これまでのレッスンにおいて、putsやpなどの引数を端末へ表示するメソッドを紹介しました。Rubyでは、他にも様々なメソッドが標準で用意されています。

それではメソッドはどのようにしたら自分で定義できるのでしょうか。

def <メソッド名>
  <文>
end

キーワードのdefの後に<メソッド名>を指定します。その後の<文>にメソッドを呼び出した時に実行したい処理を指定します。以下のようにメソッドを定義します。

def greeting
  puts("Hello, Ruby!")
end
greeting  #=> "Hello, Ruby!"
greeting  #=> "Hello, Ruby!"

<メソッド名>には小文字のアルファベットと"_"が使えます。

定義したメソッドを使いたい時は、<メソッド名>で呼び出すことで何回でも処理をおこなえます。

先ほどの例では引数のないメソッドを定義しました。それでは引数のあるメソッドを定義する時はどのように定義するのでしょうか。引数のあるメソッドは、以下のようにして定義できます。

def example(args1, args2)
  args1 + args2
end

このようにメソッド名の後に()を書き、()の中に必要な仮引数を指定することでおこないます。仮引数とはメソッドを定義する時に使う仮の引数です。
仮引数は「,」で区切れます。区切った後の半角スペースは無視します。

def example(args1,                    args2)
  args1 + args2
end
p(example(100, 100))  #=> 200

メソッドの戻り値は<文>で最後に評価した式です。ただし、return文を使うことによってメソッドの実行を中断して途中で直接戻り値を返します。return文の右辺に指定した値または式を評価した結果がメソッドの戻り値になります。return文を使って実行を中断したメソッドの例が以下になります。

def example(args1, args2)
  return args1
  args1 + args2  # returnの行でメソッドの実行は中断されるため、この行は実行されない
end

メソッドの外でローカル変数に代入した値はメソッドの中では使えません。

val = 23
def example
  p val
end
# エラーが発生する
example

同じようにメソッドの中でローカル変数に代入した値は、メソッドの外で使えません。

def example
  flag = 42
  p flag
end
# エラーが発生する
p(flag)

メソッドを定義する時にifやwhileを使うこともできます。

def example
  val = 1
  while val < 10
    if val == 5
      puts("valが5になった")
    end
    val += 1
  end
end


次のコンテンツ ホームへ戻る