변수 타입
매크로 호출 코드
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
복사