戻り値
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 48/78。
これまで、私たちの関数は出力を直接表示してきました。しかし、多くの場合、関数に値を計算させ、それをコードの他の場所で使用できるように戻したいことがあります。ここで戻り値の出番です。
関数から値を返すには、return() 関数を使用します:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)出力:
[1] 8関数内で出力する代わりに、合計を返します。返された値は変数に格納したり、計算に使用したり、他の関数に渡したりすることができます。
これにより、関数の汎用性が大幅に向上します:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))出力:
[1] 16Rでは、return()を使用しない場合、関数は最後に評価された式を自動的に返します。しかし、明示的にreturn()を使用することでコードがより明確になり、特に関数を途中で終了させたい場合に便利です。
チャレンジ
簡単2つの引数 base と exponent を受け取る calculate_power という名前の関数を作成してください。この関数は、^ 演算子を使用して、base を exponent 乗した結果を return(返却)する必要があります。
入力から2つの数値を読み込み、それらを数値型に変換して、作成した関数を呼び出してください。返された値を result という名前の変数に格納し、result を出力してください。
例えば、入力が 2 と 3 の場合、出力は以下のようになります:
[1] 8入力が 5 と 2 の場合、出力は以下のようになります:
[1] 25チートシート
関数は return() 関数を使用して値を返すことができます。これにより、結果を変数に格納したり、他の操作で使用したりできるようになります。
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result) # [1] 8返された値は、式の中で直接使用できます:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3)) # [1] 16Rでは、return() が使用されていない場合、関数は最後に評価された式を自動的に返します。しかし、明示的に return() を使用することで、コードがより明確になり、関数から早期に抜けることが可能になります。
自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: baseとexponentを受け取るcalculate_powerという名前の関数を作成する
# そして、^ 演算子を使用してbaseをexponent乗した結果を返す
# TODO: 入力値を使用して関数を呼び出し、結果を 'result' に格納する
# 結果を出力する
print(result)このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。