libro
www.tuyano.com
初心者のためのRubyプログラミング入門

構造化からオブジェクトへ! (2/5)

作成:2012-08-19 10:38
更新:2012-08-19 10:38

■引数と返り値

これは、ただ名前を指定して呼び出すだけのものでしたが、メソッドはもう少し複雑なこともできます。特に、メソッドの重要な要素である「引数」と「返り値」を覚えることで、メソッドを呼び出す側と値をやり取りしながら処理を実行することができるようになります。


●引数を使うには?
メソッドを呼び出す際に必要な値などを受けたしたい場合もあるでしょう。こうしたときは、「引数」というものを利用します。これは最初のdef行を以下のように記述します。
def メソッド名 ( 引数1, 引数2, ……)
()内にある引数というところには、値を受け取るための変数を用意します。このようにすることで、呼び出す際に値をこれらの変数に受け渡し、メソッドで利用することができるようになります。これを呼び出すときは、
メソッド名 ( 値1, 値2, ……)
このように記述します。メソッド名の後に()をつけ、その中に受け渡す値を用意するわけです。これも、実際に例を挙げましょう。
def helo(name)
    puts("Hello, " + name + "!")
end

helo("Taro")
helo("Hanako")
実行すると、「Hello, Taro!」「Hello, Hanako!」といったテキストが表示されます。def helo(name)で、引数に用意している変数nameに値が渡され、それをputsで表示していることがわかりますね。これを呼び出している部分では、helo("Taro")というように記述しています。これで、"Taro"というテキストが、heloメソッドの引数にある変数nameに受け渡される、というわけです。


●返り値を使うには?
メソッドは、呼び出して何かを実行しておしまい、というだけではなく、「実行した後の結果」を受け取る事もできます。「返り値(または、戻り値)」というもので、以下のような形で記述します。
def メソッドの宣言
    ……実行する処理……
    return
end
return」というのは、メソッドを抜け、呼び出し元に処理を返すためのものです。このとき、指定した値を呼び出し元に返すことができます。その値を変数などに納めて利用することができるのです。
変数 = メソッド名
こんな具合にすれば、メソッドでreturnされた値が変数に代入されます。つまり返り値を持つメソッドは、変数や値と同じ感覚で扱うことができる、と考えればよいでしょう。では、先ほどの例を返り値を持つ形に修正してみましょう。
def helo(name)
    return "Hello, " + name + "!"
end

puts(helo("Sachiko"))
ここでは、heloメソッドを実行すると、テキストを生成してreturnするようになっています。puts()内にheloメソッドを用意することで、returnされたテキストを表示しているのですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※引数の利用例

def helo(name)
	puts("Hello, " + name + "!")
end

helo("Taro")
helo("Hanako")


※返り値の利用例

def helo(name)
	return "Hello, " + name + "!"
end

puts(helo("Sachiko"))
※関連コンテンツ

「初心者のためのRubyプログラミング入門」に戻る