Define a macro and use it:
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
}
fn main() {
my_macro!();
}
Notice that you have time define macro
before main
function. Otherwise it doesn't work.
Expose a macro from module:
mod macros {
#[macro_export]
macro_rules! my_macro {
() => {
println!("Check out my macro!");
};
}
}
fn main() {
my_macro!();
}
We need to add attribute #[macro_export]
, in order to make it work.
Arms:
The macro my_macro
is defined with two "arms", each of which matches different patterns of input and associates those patterns with specific code blocks.
There are two arms in following code:
macro_rules! my_macro {
() => {
println!("Check out my macro!");
}; // ; is important
($val:expr) => { //:expr the val should be an expersion
println!("Look at this other macro: {}", $val);
}; // ; is important
}
fn main() {
my_macro!();
my_macro!(7777);
}
标签:val,macro,Write,println,main,my,Rust,out From: https://www.cnblogs.com/Answer1215/p/18036962