我是Rust的新手。我认为这use
用于将标识符导入当前作用域,extern
并用于声明外部模块。但是这种理解(也许是错误的)对我来说没有任何意义。有人可以解释为什么Rust具有这两个概念,以及使用它们的合适案例是什么?
Answers:
extern crate foo
表示您要链接到外部库,并将顶级条板箱名称带入范围(相当于 use foo
)。从Rust 2018开始,在大多数情况下,您不再需要使用它extern crate
,因为Cargo会通知编译器存在哪些包装箱。(有一两个例外)
use bar
是引用标准符号的简写。
从理论上讲,不需要 该语言use
-您始终可以只对名称进行完全限定,但是键入std::collections::HashMap.new(...)
将变得非常乏味!取而代之的是,您只需键入use std::collections::HashMap
一次,然后即可HashMap
进行引用。
extern crate failure;
但use std::error::Error
extern crate foo;
吗?板条箱和模块是Rust中的独立概念,您可能需要看一下“基本术语:板条箱和模块”,它解释了两者之间的区别(我个人下面的示例过于冗长)。