728x90
728x170
■ macro_rules! 매크로를 사용해 재귀 호출 매크로를 만드는 방법을 보여준다.
▶ 예제 코드 (RS)
macro_rules! print_html
{
() => {()};
($e : tt) => {print!("{}", $e)};
($tag : ident [$($inner : tt)*] $($rest : tt)*) =>
{
{
print!("<{}>", stringify!($tag));
print_html!($($inner)*);
println!("</{}>", stringify!($tag));
print_html!($($rest)*);
}
};
}
fn main()
{
print_html!
(
html
[
head[title["test"]]
body
[
h1["test"]
p ["This is test."]
]
]
);
}
/*
<html><head><title>test</title>
</head>
<body><h1>test</h1>
<p>This is test.</p>
</body>
</html>
*/
728x90
그리드형(광고전용)
'Rust > Common' 카테고리의 다른 글
[RUST/COMMON] Rc<T> 구조체 : new/clone/strong_count 연관 함수 사용하기 (0) | 2023.06.12 |
---|---|
[RUST/COMMON] Box<T> 구조체 : 단방향 연결 리스트 만들기 (기능 추가) (0) | 2023.06.12 |
[RUST/COMMON] Box<T> 구조체 : 값 T 구하기 (0) | 2023.06.10 |
[RUST/COMMON] Box<T> 구조체 : 열거형을 사용해 단방향 연결 리스트 만들기 (0) | 2023.06.10 |
[RUST/COMMON] Box<T> 구조체 : 단방향 연결 리스트 만들기 (0) | 2023.06.10 |
[RUST/COMMON] macro_rules! 매크로 : 특정 값의 레이블을 구하는 매크로 만들기 (0) | 2023.06.10 |
[RUST/COMMON] macro_rules! 매크로 : HashMap 객체를 초기화하는 매크로 만들기 (0) | 2023.06.09 |
[RUST/COMMON] macro_rules! 매크로 : BASIC 언어의 for문 매크로 만들기 (0) | 2023.06.09 |
[RUST/COMMON] macro_rules! 매크로 : 가변 인수 매크로 만들기 (0) | 2023.06.08 |
[RUST/COMMON] marco_rules! 매크로 : 매크로 만들기 (0) | 2023.06.08 |