Create chapter_3_23_1.md

This commit is contained in:
令狐一冲
2023-05-18 11:30:28 +08:00
committed by GitHub
parent ca16ae8a23
commit dd89252839

View File

@@ -0,0 +1,28 @@
# 3.23.1 声明宏
声明宏使用macro_rules!定义是Rust中最常用的宏形式。下面代码中定义Vec时使用的vec!就是一个声明宏:
```Rust
fn main() {
let _v = vec![1, 2, 3]; // 使用声明宏vec定义一个Vec
}
```
下面的例子演示定义一个声明宏并使用它:
```Rust
// 定义一个声明宏my_vec
macro_rules! my_vec {
( $( $x:expr ),* ) => {
{
let mut temp_vec = Vec::new();
$(
temp_vec.push($x);
)*
temp_vec
}
};
}
fn main() {
let v = my_vec![1, 2, 3]; // 使用声明宏 my_vec
println!("v: = {:?}", v);
}
```