■ macro_rules! 매크로를 사용해 특정 값의 레이블을 구하는 매크로를 만드는 방법을 보여준다.
▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
macro_rules! select_label { ($value : expr, $($source_label : expr => $range : expr);+) => { { let mut target_label = ""; $( if $range.start <= $value && $value< $range.end { target_label = $source_label; } )+ target_label } }; } fn main() { let label : &str = select_label! [ 90, "하단" => 0..30; "중단" => 30..60; "상단" => 60..100 ]; println!("결과 : {}", label); } /* 결과 : 상단 */ |