러스트에서 넘어옴
이 문서는 분류가 되어 있지 않습니다. 분류:분류에서 적절한 분류를 찾아 문서를 분류해주세요!
1. 개요 [편집]
러스트는 안전성, 성능, 동시성을 핵심 가치로 삼는 시스템 프로그래밍 언어이다. 기존 C/C++의 대안으로 등장했으며, 메모리 안전성을 컴파일 타임에 보장하면서도, 런타임 비용을 최소화하는 것을 목표로 한다. 이로써 OS, 브라우저 엔진, 게임, WASM, 임베디드 등 성능이 중요한 분야에서 각광받고 있다.
C언어보다 느리다
C언어보다 느리다
2. 특징 [편집]
소유권(Ownership) 시스템
러스트는 소유권과 빌림(Borrowing) 개념을 통해 런타임 없이 메모리 안전성을 보장한다.
무비용 추상화
고수준 문법을 제공하면서도 컴파일러가 최적화를 수행하여 런타임 성능을 희생하지 않는다.
풍부한 매크로
macro_rules!, proc_macro 등 다양한 매크로 확장 기능을 제공한다.
크로스 플랫폼
리눅스, 윈도우, macOS는 물론, WASM, 임베디드 환경 등 다양한 플랫폼으로의 빌드를 쉽게 할 수 있다.
패키지 관리자 cargo
빌드, 의존성 관리, 배포가 일관되게 이뤄진다.
러스트는 소유권과 빌림(Borrowing) 개념을 통해 런타임 없이 메모리 안전성을 보장한다.
무비용 추상화
고수준 문법을 제공하면서도 컴파일러가 최적화를 수행하여 런타임 성능을 희생하지 않는다.
풍부한 매크로
macro_rules!, proc_macro 등 다양한 매크로 확장 기능을 제공한다.
크로스 플랫폼
리눅스, 윈도우, macOS는 물론, WASM, 임베디드 환경 등 다양한 플랫폼으로의 빌드를 쉽게 할 수 있다.
패키지 관리자 cargo
빌드, 의존성 관리, 배포가 일관되게 이뤄진다.
3. 팁 [편집]
기존 Option 타입을 다룰 때는 이와 같이 들여쓰기가 깊어지기 쉽다.
아래처럼 some_or_return! 매크로를 사용하면, 한 줄로 간결하게 표현할 수 있다.
fn example(opt: Option<i32>) {
if let Some(val) = opt {
println!("{val}");
} else {
return;
}
}
아래처럼 some_or_return! 매크로를 사용하면, 한 줄로 간결하게 표현할 수 있다.
macro_rules! some_or_return {
($e:expr) => {
if let Some(v) = $e { v } else { return };
};
}
fn example(opt: Option<i32>) {
let val = some_or_return!(opt);
println!("{val}");
}