저는 Rust를 처음 사용합니다. 나는 그 생각 use
현재 범위에 수입 식별자로 사용되며 extern
외부 모듈을 선언하는 데 사용됩니다. 그러나이 이해 (아마도 틀렸을 수도 있음)는 나에게 의미가 없습니다. 누군가 Rust에이 두 가지 개념이있는 이유와이를 사용하기에 적합한 경우가 무엇인지 설명 할 수 있습니까?
답변:
extern crate foo
외부 라이브러리에 링크하려고 함을 나타내며 최상위 수준 상자 이름을 범위로 가져옵니다 (와 동일 use foo
). Rust 2018 부터는extern crate
Cargo가 컴파일러에게 어떤 상자가 있는지 알려주기 때문에 대부분의 경우 더 이상 사용할 필요가 없습니다 . ( 한두 가지 예외가 있습니다. )
use bar
정규화 된 기호를 참조하는 약어입니다.
이론적으로는 언어가 필요 하지 않습니다. use
항상 이름을 완전히 정규화 할 수 있지만 타이핑 std::collections::HashMap.new(...)
은 매우 지루할 것입니다! 대신 use std::collections::HashMap
한 번만 입력 하면 HashMap
해당 내용을 참조 할 수 있습니다.
수락 된 답변은 작성 당시에 정확했습니다. 그러나 더 이상 정확하지 않습니다.
extern crate
Rust 2018 이후로 거의 필요하지 않습니다.
이제 Cargo.toml에 외부 종속성을 추가하기 만하면됩니다.
use
이전과 동일하게 작동합니다.
공식 문서 에서 자세한 내용을 읽어보십시오 .
편집 : 이제 수락 된 답변이 Rust 2018의 변경 사항을 올바르게 반영하도록 편집되었습니다.
extern crate failure;
하지만use std::error::Error
extern crate foo;
하시는 건가요? 상자와 모듈은 Rust에서 별개의 개념입니다 . 두 가지의 차이점을 설명하는 "기본 용어 : 상자와 모듈" 을 살펴보고 싶을 것 입니다.