Dev Study
← 解説「use — パスを短くする」に戻る

サンプルコードで身につける: use — パスを短くする

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

1use でパスを短くする基本

入れ子のモジュールをフルパスで呼ぶ書き方と、use で短くした書き方を並べた最小の例です。use tools::text と書いておけば、以降は text::shout だけで呼べます。動きは何も変わらず、呼び出しが読みやすくなるだけ、というのが use の本質です。

Rust

2構造体は型自体を use する

関数は親モジュールまでを use するのに対し、構造体や enum は型自体を use するのが慣習であることを示す例です。use models::Book としておけば、main では Book という短い名前だけで構築できます。この慣習を守ると「どこから来た名前か」がコードベース全体で予測しやすくなります。

Rust

3標準ライブラリを use する

自作モジュールだけでなく、標準ライブラリも std の下のモジュールを use して使うことを示す例です。関数は親モジュールまで取り込む慣習どおり、use std::cmp として cmp::max の形で呼んでいます。std::collections や std::num など、実務ではこの形の use がファイル冒頭に並びます。

Rust

4as で別名を付けて衝突を避ける

2つのモジュールが同名の関数を持つとき、use パス as 別名 で名前を付け替えて両方取り込む例です。そのまま use すると名前が衝突しますが、別名なら呼び出し側で取り違える心配もありません。外部ライブラリどうしで型名が被ったときにも、実務でそのまま使えるテクニックです。

Rust

5深い階層のモジュールを use で整える

services::billing::invoice という3階層のパスを、use で invoice まで縮めて使う実務寄りの例です。請求関連の処理を何度も呼ぶコードでは、毎回フルパスを書くと本質的なロジックが埋もれてしまいます。「ファイル冒頭の use を見れば依存先が一覧できる」状態を保つのが読みやすいコードの定石です。

Rust