extern crate foo表示你想要链接一个外部库,并将顶层的crate名称带入作用域(等价于use foo)。截至Rust 2018,大多数情况下you won't need to use extern crate anymore,因为Cargo会通知编译器有哪些crate。(有一两个例外) use bar是引用完全限定符号的简写。 从理论上讲,该语言不需要use-你可以完全限定名称,但是输入std::collections::HashMap.new(...)会变得非常乏味!相反,你可以只输入use std::collections::HashMap一次,然后HashMap会引用它。
2条答案
按热度按时间ovfsdjhp1#
extern crate foo
表示你想要链接一个外部库,并将顶层的crate名称带入作用域(等价于use foo
)。截至Rust 2018,大多数情况下you won't need to useextern crate
anymore,因为Cargo会通知编译器有哪些crate。(有一两个例外)use bar
是引用完全限定符号的简写。从理论上讲,该语言不需要
use
-你可以完全限定名称,但是输入std::collections::HashMap.new(...)
会变得非常乏味!相反,你可以只输入use std::collections::HashMap
一次,然后HashMap
会引用它。3j86kqsm2#
在撰写本文时,已接受的答案是正确的,但现在已不再正确。自Rust 2018以来,几乎不再需要
extern crate
。现在只需要向
Cargo.toml
添加外部依赖项。use
的工作原理和以前一样。在official documentation中了解更多信息。
编辑:已接受的答案现已经过编辑,以正确反映《 rust 2018》中的变化。