Dev Study
← 解説「関数 — 文と式の違い」に戻る

サンプルコードで身につける: 関数 — 文と式の違い

解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。

1引数なしの関数を呼び出す

fn で関数を定義して main から呼ぶ、いちばん素朴な例です。引数も戻り値もなくても、「名前の付いたひとまとまりの処理」として切り出せます。同じ表示を何か所でも使い回せるようになるのが関数の出発点です。

Rust

2引数と戻り値 — 最後の式が返る

引数の型注釈と -> の戻り値型、そして「セミコロンなしの最後の式が戻り値になる」という Rust の核心を示す例です。n * n の後ろにセミコロンがない点に注目してください。ここにセミコロンを付けると戻り値が () になり型エラーになる、というのが最頻出のつまずきです。

Rust

3ブロックも式 — 値を返す波括弧

let は値を返さない「文」、ブロック { ... } は値を返す「式」という区別を1つのプログラムで確かめる例です。ブロックの最後にセミコロンなしで base + 1 を置くと、それが y に入ります。中間変数を外に漏らさず計算をまとめたいとき、実務でもこの書き方を使います。

Rust

4関数から関数を呼んで組み立てる

税額を出す tax と、それを使って税込価格を出す total_price という2つの関数を組み合わせる例です。小さな関数に分けておくと、税率の変更は tax の1か所だけ直せば済みます。「計算のルールごとに関数を分ける」のは実務コードの基本的な整理術です。

Rust

5単位変換ヘルパーを関数にまとめる

摂氏→華氏、分→秒という単位変換を関数として用意しておく実務寄りの例です。変換式が関数名と型(f64 を受けて f64 を返す、など)で自己説明的になり、呼び出し側は式を覚える必要がなくなります。設定値の変換やフォーマット処理など、「小さいが何度も使う計算」は関数化が定石です。

Rust