Rust 编程视频教程(进阶)——029_2 声明宏

Ebony ·
更新时间:2024-11-15
· 956 次阅读

视频地址

头条地址:https://www.ixigua.com/i6775861706447913485
B站地址:https://www.bilibili.com/video/av81202308/

源码地址

github地址:https://github.com/anonymousGiga/learn_rust

讲解内容

使用marco_rules!的声明宏
例子1:

let v = vec![1, 2, 3];//vec!就是用marco_rules!的声明宏

例子2:
(1)mkdir learn_marco1
(2)cd learn_marco1
(3)vim Cargo.toml,编辑工作空间:

[workspace] members = [ "mac", "main", ]

(4)cargo new mac --lib
(5)编辑mac/src/lib.rs:

#[macro_export] macro_rules! my_vec { ( $( $x:expr ),* ) => { { let mut temp_vec = Vec::new(); $( temp_vec.push($x); )* temp_vec } }; }

(6)cargo new main
(7)编辑main/Cargo.toml添加:

[dependencies] mac = {path = "../mac"}

(8)编辑main/src/main.rs如下:

use mac; fn main() { let v = mac::my_vec![1, 2, 3]; println!("v = {:?}", v); println!("Hello, world!"); }

说明:在上面的例子中定义了声明宏,并在main中进行使用。宏中的代码等价于如下

let mut temp_vec = Vec::new(); temp_vec.push(1); temp_vec.push(2); temp_vec.push(3); temp_vec
作者:令狐壹冲



编程视频教程 rust 教程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号