算術

fn interproduct(a: i32, b: i32, c: i32) -> i32 {
    return a * b + b * c + c * a;
}

fn main() {
    println!("result: {}", interproduct(120, 100, 248));
}
This slide should take about 3 minutes.

main 以外の関数が出てきたのは今回が初めてですが、その意味は明確です。つまり、3 つの整数を取り、1 つの整数を返します。関数については、後で詳しく説明します。

算術は他の言語とよく似ており、優先順位も類似しています。

What about integer overflow? In C and C++ overflow of signed integers is actually undefined, and might do unknown things at runtime. In Rust, it's defined.

i32i16 に変更して、整数オーバーフローを確認します。これは、デバッグビルドではパニックになり(チェックされ)、リリースビルドではラップされます。オーバーフロー、飽和、キャリーなどのオプションもあり、メソッド構文を使用してこれらのオプションにアクセスします(例: (a * b).saturating_add(b * c).saturating_add(c * a))。

実際には、コンパイラは定数式のオーバーフローを検出します。この例で別の関数が必要になるのはそのためです。