■ macro_rules! 매크로를 사용해 BASIC 언어의 for문 매크로를 만드는 방법을 보여준다.
▶ 예제 코드 (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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
macro_rules! basic_for { ( for $i:ident = $from:tt to $to:tt $block:block ) => { { for $i in $from..=$to { $block; } } }; ( for $i:ident = $from:tt to $to:tt step $step:tt $block:block ) => { { let mut $i = $from; loop { if $i > $to { break; } $block; $i += $step; } } }; } fn main() { let mut total : i32 = 0; basic_for! { for i = 1 to 10 { total += i; } } println!("{}", total); basic_for! { for i = 0 to 10 step 3 { println!("i = {}", i); } } } /* 55 i = 0 i = 3 i = 6 i = 9 */ |