36
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rust のソースファイルを分割する、いちばん簡単な方法

Last updated at Posted at 2020-12-14

ファイルの分割方法が分からなくて Rust に挫折してましたが、調べたら簡単でした。

追記: こちらの記事 Clear explanation of Rust’s module system が分かりやすいです。もっと早く読みたかった。

やり方

こちらの issue より、

main.rs
mod hello;

fn main() {
    hello::print_hello();
}
hello.rs
pub fn print_hello() {
    println!("Hello, world!");
}

たったこれだけ。ポイントは、

  • 分けたファイルは自動的にモジュールになる
  • main.rs に mod モジュール名; を列挙する
  • 他のモジュールから参照したいものには pub を付ける
  • 参照する側は モジュール名::識別子 とするか、use を使う

特に、lib.rs は不要です。(作りたければ作ってもいいけど。)

愚痴

プログラミング (または新しい言語) を勉強する時って、

  1. とりあえず一つのファイルに全部書く
  2. 適当にファイルを分割してみる
  3. 再利用できそうなものをライブラリ化する
  4. 最初からライブラリとして設計する
    という順番がある (かつ、すべての人が 3 や 4 をやる必要はない) と思うのですが、Rust のドキュメントは 2 をすっ飛ばして、いきなり 3 や 4 に進んでしまう印象…。

(最初「ドキュメントや書籍は〜」と書こうとして、実践 Rust 入門 を確認したらちゃんと書いてありました。が、一つのファイルを複数のモジュールに分ける方がメインになってたので、すっかり見落としてて、ずっと悩んでました。)

36
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?