Dev Study
← 解説「struct の定義 — 関連データをまとめる」に戻る

サンプルコードで身につける: struct の定義 — 関連データをまとめる

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

1最小の構造体

2つの i32 をまとめただけの、もっとも素朴な構造体です。「定義 → インスタンス生成 → ドット記法でアクセス」という struct の基本3ステップを最小の形で確認できます。座標やサイズのような小さな値の組は、実務でもこの形のまま使われます。

Rust

2型の違うフィールドを持たせる

String と u32 という型の違うデータを1つの構造体にまとめる例です。「本のタイトルとページ数」のように、種類の違う関連データに名前を付けて束ねられるのが struct の本領です。実務のデータモデルはほぼすべてこの形から始まります。

Rust

3mut でフィールドを更新する

インスタンス全体を let mut で宣言すると、フィールドをドット記法で書き換えられることを示す例です。可変性は「stock だけ可変」のようにフィールド単位では指定できず、インスタンス単位で決まります。在庫数や状態のように時間とともに変わるデータの更新は実務で頻出です。

Rust

4構造体を参照で関数に渡す

構造体も String と同じように、& を付ければ所有権を渡さずに関数へ貸し出せます。借用のルールが構造体にもそのまま当てはまるので、呼び出し後も同じインスタンスを何度でも使えます。実務では「読むだけの関数は &User で受ける」がそのまま定番の書き方です。

Rust

5構造体を組み立てて返す関数

入力から計算した値を詰めた構造体を関数の戻り値にする例です。合計金額の計算ロジックを生成側の関数に閉じ込めることで、呼び出し側は完成した Order を受け取るだけになります。「バラバラの値を受け取り、整った構造体にして返す」は実務の関数設計の基本形です。

Rust