use と extern crate の違いは何ですか? 質問する

use と extern crate の違いは何ですか? 質問する

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それを参照することができます。

おすすめ記事