use
これは、現在のスコープに識別子をインポートするために使用され、外部モジュールを宣言するために使用されると思いますextern crate
。しかし、この理解 (間違っている可能性があります) は私にはまったく意味をなさないです。Rust にこれらの 2 つの概念がある理由と、それらを使用する適切なケースについて説明してくれる人はいますか?
ベストアンサー1
extern crate foo
は外部ライブラリにリンクしたいことを示し、トップレベルのクレート名をスコープ内に持ち込みます( と同等use foo
)。Rust 2018の時点では、ほとんどの場合extern crate
もう使う必要はありませんCargoはコンパイラにどのようなクレートが存在するかを知らせるからです。(1つか2つの例外)
use bar
完全修飾シンボルを参照するための省略形です。
理論的には、言語は必要 use
— 名前を完全に修飾することもできますが、入力するのはstd::collections::HashMap.new(...)
非常に面倒です。代わりに、use std::collections::HashMap
一度入力してHashMap
それを参照することができます。