戻り値
CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 51/75。
メソッド内の return 文は、メソッドが出力として生成すべき値(または複数の値)を指定するために使用されます。例えば、次のメソッドは 100 を出力します:
fn function_name() -> i32 {
return 100;
}矢印 -> 記号によって、この関数が i32 型のデータを返していることに注目してください。
戻り値を変数に渡すには、次のように記述します:
let number: i32 = function_name();これで、number 変数には 100 が保持されます。これはメソッドがこの値を返したためです。
メソッドの戻り値の型(この場合は
i32)は、戻り値を格納する変数のデータ型と一致している必要があることに注意してください。
チャレンジ
簡単各テストケースには3つの入力があります。
最初の入力はイテレーションを何回行うかを示し、最後の2つの入力は操作の対象となる数値です。
2つの引数を受け取り、2つのうち大きい方の数値を返すメソッドを作成してください。両方が等しい場合は、そのうちの1つを返します。
iterations 回イテレーションを行い、各イテレーションで以下を実行します:
num1、num2を使用してメソッドを呼び出し、結果を変数に保存します。- 2つのうちの大きい方の数値を
2で割り、元の大きい方の変数を新しい結果の値で置き換えます。 - 新しい値を出力します。
- プログラムが
iterations回繰り返されるか、いずれかの数値が 2より小さくなるまでこれを継続します。
注意:コードのスケルトンは既に用意されています!
チートシート
return 文は、関数が出力として生成する値を指定します:
fn function_name() -> i32 {
return 100;
}矢印 -> を使用して戻り値の型を指定します。返された値を変数に格納します:
let number: i32 = function_name();戻り値の型は、返された値を格納する変数のデータ型と一致する必要があります。
自分で試してみよう
use std::io;
fn bigger(arg1: f64, arg2: f64) -> f64 {
// 関数を完成させてください
}
fn main() {
let mut input_iter = String::new();
let mut input_num1 = String::new();
let mut input_num2 = String::new();
io::stdin().read_line(&mut input_iter).unwrap();
io::stdin().read_line(&mut input_num1).unwrap();
io::stdin().read_line(&mut input_num2).unwrap();
let iter: i32 = input_iter.trim().parse().unwrap();
let mut num1: f64 = input_num1.trim().parse().unwrap();
let mut num2: f64 = input_num2.trim().parse().unwrap();
for _ in 0..iter {
// 以下にコードを記述してください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。