use와 경로
항목 가져오기
use와 경로은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.
항목을 범위로 가져오기
모든 곳에서 std::collections::HashMap처럼 전체 경로를 입력하는 일은 번거롭습니다. use 키워드를 사용하면 항목을 범위로 가져와 짧은 이름으로 참조할 수 있습니다.
기본적인 use
use를 사용한 뒤에는 마지막 이름으로 항목을 참조합니다. 여기서는 HashMap을 가져와 직접 사용합니다.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("ana", 10);
println!("{:?}", scores.get("ana"));
}절대 경로와 상대 경로
절대 경로는 crate(크레이트 루트)에서 시작합니다. 상대 경로는 현재 모듈에서 시작하며, 필요에 따라 self 또는 super를 사용합니다.
mod a {
pub mod b {
pub fn hi() { println!("hi from b"); }
}
pub fn call_b() {
crate::a::b::hi();
self::b::hi();
}
}
fn main() {
a::call_b();
}모듈 내부의 use
use는 작성된 범위에만 영향을 줍니다. 모듈 전체에서 사용하는 이름을 줄이려면 모듈 상단에 배치하십시오.
mod work {
use std::collections::HashSet;
pub fn run() {
let mut s = HashSet::new();
s.insert(1);
s.insert(1);
println!("size {}", s.len());
}
}
fn main() {
work::run();
}as로 이름 바꾸기
두 항목의 이름이 같거나 이름이 너무 긴 경우 as를 사용해 가져올 때 이름을 바꿀 수 있습니다.
use std::collections::HashMap as Map;
fn main() {
let mut m: Map<&str, i32> = Map::new();
m.insert("x", 1);
println!("{:?}", m.get("x"));
}가져오기 그룹화
중괄호를 사용하면 같은 경로에서 여러 항목을 한 줄로 가져올 수 있습니다. 이렇게 하면 가져오기 블록을 깔끔하게 유지할 수 있습니다.
use std::collections::{HashMap, HashSet};
fn main() {
let map: HashMap<i32, i32> = HashMap::new();
let set: HashSet<i32> = HashSet::new();
println!("{} {}", map.len(), set.len());
}중첩 그룹과 self
그룹 안에서 self는 해당 모듈 자체를 모듈의 항목과 함께 가져옵니다. 따라서 모듈 이름과 특정 구성원을 모두 사용할 수 있습니다.
use std::io::{self, Write};
fn main() {
let _ = io::stdout().write_all(b"hello\n");
}글로브 가져오기
글로브 *는 경로에서 공개된 모든 항목을 가져옵니다. 이름의 출처가 어디인지 숨길 수 있으므로 신중하게 사용해야 하지만, 프렐류드와 테스트에서는 흔히 사용됩니다.
mod colors {
pub fn red() -> &'static str { "red" }
pub fn blue() -> &'static str { "blue" }
}
use colors::*;
fn main() {
println!("{} {}", red(), blue());
}관용적인 가져오기 방식
관례상 함수는 부모 모듈을 통해 가져오고(use std::cmp; cmp::max(...)), 타입은 이름으로 가져옵니다(use std::collections::HashMap;). 이렇게 하면 호출의 의미가 명확해집니다.
use std::cmp;
fn main() {
println!("{}", cmp::max(3, 9));
}외부 크레이트의 경로
의존성의 경우 경로는 크레이트 이름으로 시작합니다. 예를 들어 rand::thread_rng와 같습니다. Cargo.toml에 크레이트를 나열한 다음, std에서와 같은 방식으로 항목을 가져옵니다.
가져오기 깔끔하게 유지하기
관련된 가져오기를 그룹화하고, 충돌을 피하도록 이름을 바꾸며, 애플리케이션 코드에서는 글로브보다 명시적인 가져오기를 우선하십시오. 깔끔한 가져오기를 사용하면 파일의 내용을 빠르게 훑어볼 수 있습니다.
빠른 확인
경로에 대한 이해도를 확인해 보십시오.
복습
항목을 가져오는 방법을 배웠습니다.
use는 짧은 이름으로 항목을 범위에 가져옵니다.- 절대 경로는
crate에서 시작하고, 상대 경로는self/super를 사용합니다. as는 이름을 바꾸고, 중괄호는 그룹화하며,*는 글로브 가져오기를 수행합니다.- 명확성을 위해 타입은 이름으로, 함수는 부모 모듈을 통해 가져옵니다.
자주 묻는 질문
“use와 경로” 강의는 무료인가요?
네 — “use와 경로” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.
“use와 경로”에서 뭘 배우나요?
항목 가져오기 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“use와 경로” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 모듈과 mod
- pub와 가시성
- use와 경로
- 크레이트와 크레이트 루트