2 つの数値から大きい方を取り出す
Rust の標準ライブラリが提供しているジェネリクス関数 std::cmp::max を使うと、2 つの数値のうち大きい方の値を取り出すことができます。
let larger = std::cmp::max(2, 5); //=> 5
// 呼び出し時のコードを短くしたいときは次のように use 宣言します
// use std::cmp::max;
// let larger = max(2, 5);
また、数値のプリミティブ型 (i32
や f64
) は core::cmp::Ord トレイトを実装しているため、max
メソッドでも上記と同様の処理を行えます。
let larger = 2.max(5); //=> 5
前者の関数型と比較して、後者のメソッド型は直感的に理解しにくいかもしれませんが、場面によっては便利です。
例えば、num.max(0)
という表現は、num
が負の値だったときに、0 になるよう修正する という処理になります。
複数の数値の中から最大値を取り出す
数値型のベクターや配列から、最大の値を持つ値を取り出すには次のようにします。
この場合、max
メソッドの戻り値は Option 型 になっており、ベクターや配列が空の場合は None
を返すことに注意してください。