Rust で数値を特定の範囲に収まるように修正する (clamp, min, max)

clamp メソッド

Rust である数値を指定した範囲に収まるように修正するには、clamp メソッドを使用します。 次の例では、いろいろな数値を「0 以上 5 以下」の範囲に収まるように修正しています。

println!("{}", (-3).clamp(0, 5));  //=> 0
println!("{}", 0.clamp(0, 5));     //=> 0
println!("{}", 2.clamp(0, 5));     //=> 2
println!("{}", 7.clamp(0, 5));     //=> 5

min / max メソッド

clamp メソッドは、数値を指定した最小値と最大値の範囲に収まるようにするメソッドでしたが、最小値と最大値のいずれかを指定すればよい場合は、maxmin メソッドを使用します。

// 0 以上になるように修正する
println!("{}", (-5).max(0));  //=> 0
println!("{}", 0.max(0));     //=> 0
println!("{}", 10.max(0));    //=> 10

// 100 以下になるように修正する
println!("{}", (-5).min(100));   //=> -5
println!("{}", (27).min(100));   //=> 27
println!("{}", (999).min(100));  //=> 100