Slide 7
Slide 7 text
パターンを変数で受け取る
パターンを変数で受け取る
メタ変数と呼ばれるもので {
変数名:
フラグメント指定⼦}
で値を受け
取ることができる
macro_rules! plus {
// $a
と $b
で引数の値を受け取る
// expr
は『式を受け取る』という意味
// expr
はフラグメント指定⼦と呼ばれる
($a: expr, $b: expr) => { $a + $b };
}
macro_rules! calc {
//
演算⼦も受け取る事ができる
($a: expr, $op: tt, $b: expr) => { $a $op $b };
}
fn main() {
println!("{}", plus!(1, 2)); // output: 3
println!("{}", plus!(1, 2 * 3)); // output: 7
println!("{}", calc!(1, -, 2)); // output: -1
}