zoukankan      html  css  js  c++  java
  • Rust 宏

    标准库提供的宏

    env! 硬编码方式读取包信息

    @see https://github.com/mookid/broken_utils/blob/master/rust/ff/src/main.rs

    const BIN_NAME: &str = env!("CARGO_PKG_NAME");
    const VERSION: &str = env!("CARGO_PKG_VERSION");
    

    json!

    macro_rules! json {
        ($($key: ident : $value: expr), *) => {{
            let mut map = std::collections::HashMap::new();
            $(
                map.insert(stringify!($key), $value.clone());
            )*
            map
        }};
    }
    
    fn main() {
        let user = json! {
            name: "张三",
            age: "18岁"
        };
        println!("{:?}", user);
    
        let obj = json! {
            id: 0.3_f64,
            value: 0.1+0.2
        };
        println!("{:?}", obj);
    }
    

    json! 允许逗号可有可无

    macro_rules! json {
        ($($key: ident : $value: expr$(,)*)*) => {{
            let mut map = std::collections::HashMap::new();
            $(
                map.insert(stringify!($key), $value.clone());
            )*
            map
        }};
    }
    
    fn main() {
        let user = json! {
            name: "张三"
            age: "18岁"
        };
        println!("{:?}", user);
    
        let obj = json! {
            id: 0.3_f64,,,,
            value: 0.1+0.2
        };
        println!("{:?}", obj);
    }
    

    json! 允许最后一行逗号可有可无

    macro_rules! json {
        ($($key: ident : $value: expr),* $(,)*) => {{
            let mut map = std::collections::HashMap::new();
            $(
                map.insert(stringify!($key), $value.clone());
            )*
            map
        }};
    }
    
    fn main() {
        let user = json! {
            name: "张三",
            age: "18岁",
        };
        println!("{:?}", user);
    
        let obj = json! {
            id: 0.3_f64,
            value: 0.1+0.2,,,
        };
        println!("{:?}", obj);
    }
    

    END

  • 相关阅读:
    事件基础(一)
    添加/删除子元素的笔记
    面向对象的三大特性
    初识面向对象
    异常处理
    模块和包
    Python中常用模块一
    递归函数
    内置函数、匿名函数
    迭代器,生成器
  • 原文地址:https://www.cnblogs.com/develon/p/14818627.html
Copyright © 2011-2022 走看看