Menu
Coddy logo textTech

戻り値

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 51/75。

メソッド内の return 文は、メソッドが出力として生成すべき値(または複数の値)を指定するために使用されます。例えば、次のメソッドは 100 を出力します:

fn function_name() -> i32 {
	return 100;
}

矢印 -> 記号によって、この関数が i32 型のデータを返していることに注目してください。

戻り値を変数に渡すには、次のように記述します:

let number: i32 = function_name();

これで、number 変数には 100 が保持されます。これはメソッドがこの値を返したためです。

メソッドの戻り値の型(この場合は i32)は、戻り値を格納する変数のデータ型と一致している必要があることに注意してください。

challenge icon

チャレンジ

簡単

各テストケースには3つの入力があります。

最初の入力はイテレーションを何回行うかを示し、最後の2つの入力は操作の対象となる数値です。

2つの引数を受け取り、2つのうち大きい方の数値を返すメソッドを作成してください。両方が等しい場合は、そのうちの1つを返します。

iterations 回イテレーションを行い、各イテレーションで以下を実行します:

  • num1num2 を使用してメソッドを呼び出し、結果を変数に保存します。
  • 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 {
        // 以下にコードを記述してください
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン