簡體   English   中英

use 和 extern 有什么區別?

[英]What's the difference between use and extern?

我是 Rust 的新手。 我認為use用於將標識符導入當前范圍,而extern用於聲明外部模塊。 但是這種理解(可能是錯誤的)對我來說沒有任何意義。 有人可以解釋一下為什么 Rust 有這兩個概念以及使用它們的合適情況是什么?

extern crate foo表示您要鏈接外部庫並將頂級 crate 名稱帶入范圍(相當於use foo )。 從 Rust 2018 開始,在大多數情況下, 您將不再需要使用extern crate因為 Cargo 會通知編譯器存在哪些 crate。 (有一兩個例外

use bar是引用完全限定符號的簡寫。

理論上,該語言不需要use ——您總是可以完全限定名稱,但是鍵入std::collections::HashMap.new(...)會變得非常乏味! 相反,您只需鍵入use std::collections::HashMap一次,然后HashMap將引用它。

在撰寫本文時,接受的答案是正確的。 然而,它不再正確。 自 Rust 2018 以來幾乎不再需要extern crate

您現在只需要向 Cargo.toml 添加外部依賴項。

use和以前一樣。

官方文檔中閱讀更多內容

編輯:已接受的答案現已被編輯,以正確反映 Rust 2018 中的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM