Search

기본개념

변수 타입

매크로 호출 코드

Rust에는 두 가지 종류의 매크로가 있다.
1.
매크로_rules! → 대부분의 Rust 코드에서 사용하는 기본 매크로 방식
2.
프로시저 매크로 → 함수처럼 동작하는 강력한 매크로

1. 매크로_rules!

패턴 매칭을 이용해서 입력코드를 변환하는 문법 중심의 매크로
macro_rules!를 사용해서 정의한다.
// repeat 라는 이름의 매크로를 만들겠다. macro_rules! repeat { // $는 매크로의 인자를 나타내는 문법 // expr은 인자의 유형을 의미한다. ($word:expr, $times:expr) => { // 0부터 $times 직전까지 반복하는 범위 // 3을 넣는다면 -> 0, 1, 2 세번 반복 for _ in 0..$times { println!("{}", $word); } }; }
Rust
복사
*매크로 인자의 문법
그럼 왜 함수로 만들지 않고 매크로로 만들까?
Rust에서는 일반 함수로는 가변 인자 개수를 받거나 표현식 자체를 확장하는 기능이 붇족하다.
Rust
복사