Ruby:戻り値の使い方
初心者向け:戻り値の使い方の基本
前回はメソッドの外で定義された変数をメソッドの中で使う、引数について解説しました。 今回は、逆にメソッドの中で定義された変数を、メソッドの外で使う方法を解説します。 メソッドの中で定義された変数を、メソッドの外で普通に呼び出そうとすると、エラーになります。
def favorite fruit = "apple" end puts fruit #=>実行するとエラーになる
これは、スコープといって、変数が有効な範囲が決まっているためです。 では、メソッドの中のものを外から利用するにはどうするかと言いますと、メソッドの戻り値を使います。 メソッドは呼び出された後に、最後の式の結果が呼び出されたメソッドそのものに代入されるという性質があります。 この代入された値を戻り値といいます。
def favorite fruit = "apple" #メソッドの最後の式。 end puts favorite #メソッド呼び出し。最後の式の結果(戻り値)が代入されている。 # =>apple
最後の式の結果が代入されるので、2つ以上式があるときはこうなります。
def favorite fruit = "apple" sport = "baseball" end puts favorite #=>baseball
配列やハッシュを戻り値として渡すこともできます。
def favorite list = ["apple", "baseball", "cream"] end puts favorite #戻り値として配列が入っている。 #=>apple baseball cream
別の処理を挟むときは、メソッドの最後に配列を呼び出してやれば戻り値に配列を渡せます。
def favorite list = ["apple", "baseball", "cream"] #配列を作る puts "hello" #戻り値としたくない処理 list #最後に配列を呼び出しておく(この時点では表示されない) end puts favorite #呼び出し後戻り値として配列が入り、表示される。 #=>hello apple baseball cream