美文网首页
2022-07-21

2022-07-21

作者: wwmin_ | 来源:发表于2022-07-21 16:04 被阅读0次

1. Rust自动生成文档

cargo doc --open

路径为: [root]/target/doc/[项目名称]/index.html
在模块文档最上面添加

//! 计算一些你口算算不出来的复杂算术题

如:

//! 计算一些你口算算不出来的复杂算术题

use std::collections::{HashMap};
/// 这个是测试啦
#[allow(dead_code)]
pub fn t1() {
    let teams_list = vec![
        ("中国队".to_string(), 100),
        ("美国队".to_string(), 10),
        ("日本队".to_string(), 50),
    ];
    let mut teams_map: HashMap<_, _> = teams_list.into_iter().collect();
    let chinese_team = teams_map.get(&"中国队".to_string());
    assert_eq!(chinese_team, Some(&100));
    match chinese_team {
        Some(100) => println!("{}", &100),
        _ => println!("无")
    }

    println!("{:?}", teams_map);

    let england = "英国队".to_string();
    let count = teams_map.entry(england).or_insert(20);
    *count += 1;
    println!("{}", *count);
}

/**
 也可以用块注释哦
*/
pub fn t2(){
    
}

如下图所示:


代码注释
函数注释

2. 文档注释中添加测试用例

并使用命令cargo test执行测试

/// `add_one` 将指定值加1
///
/// # Examples11
///
/// ```rust
/// let arg = 5;
/// let answer = webtool::hash_map::add_one(arg);
///
/// assert_eq!(6, answer);
/// ```
#[allow(dead_code)]
pub fn add_one(x: i32) -> i32 {
    x + 1
}
带有测试用例的注释

测试结果


cargo test
  • 当前我并未得到想要的结果, 原因未知 , 有的说使用cargo test --doc 也未成功

3. Rust借用规则

可变借用与不可变借用不能同时存在的规则
借用的规则:要么多个不可变借用,要么一个可变借用。
引用的生命周期从借用处开始,一直持续到最后一次使用的地方。

4. 闭包

经典案例

fn work_start() {
    //动作次数
    let intensity = 10;
    // 随机值用来决定某个选择
    let random_number = 7;

    // 开始健身
    workout(intensity, random_number);
}

#[allow(dead_code)]
fn workout(intensity: u32, random_number: u32) {
    let action = || {
        println!("muuuu......");
        thread::sleep(Duration::from_secs(2));
        intensity
    };

    if intensity < 25 {
        println!(
            "今天活力满满,先做 {} 个俯卧撑!",
            action()
        );
        println!(
            "旁边有妹子在看,俯卧撑太low,再来 {} 组卧推!",
            action()
        );
    } else if random_number == 3 {
        println!("昨天练过度了,今天还是休息下吧!");
    } else {
        println!(
            "昨天练过度了,今天干干有氧,跑步 {} 分钟!",
            action()
        );
    }
}

类型标注
Rust 是静态语言,因此所有的变量都具有类型,但是得益于编译器的强大类型推导能力,在很多时候我们并不需要显式地去声明类型,但是显然函数并不在此列,必须手动为函数的所有参数和返回值指定类型,原因在于函数往往会作为 API 提供给你的用户,因此你的用户必须在使用时知道传入参数的类型和返回值类型。

与函数相反,闭包并不会作为 API 对外提供,因此它可以享受编译器的类型推导能力,无需标注参数和返回值的类型。

为了增加代码可读性,有时候我们会显式地给类型进行标注,出于同样的目的,也可以给闭包标注类型:

相关文章

  • 2022-07-21

    Nat Biomed Eng | 医疗领域机器学习模型部署机会与挑战 原创mumu图灵基因2022-07-21 0...

  • 戒定慧·《感恩日志》重启·“重新做人”第13天

    2022-07-21(周四)六月廿三 戒定慧·《感恩日志》重启· “重新做人”第13天 【20:38】 01、感恩...

  • 2022-07-21

    Nat Comm | 胶质瘤异质性分析发现影响肿瘤进展的靶点 原创图灵基因图灵基因2022-07-21 07:05...

  • 《天空与星星》——莱蒙托夫

    幸福日志2022-07-21 周四晴 夜晚的晴空如洗, 遥远的星星明丽, 明丽得像儿童的幸福; 啊!为什么我就不能...

  • 2022-07-21耐心陪伴孩子168天打卡D29

    2022-07-21耐心陪伴孩子168天打卡D29 践行方向:平和聆听断舍离 一、鼓励贴3张+: 1.亲爱的宝贝,...

  • 将来咱俩出去玩你乐意吗

    将来咱俩出去玩你乐意吗 郁平 2022-07-21 15:08北京 关注 五言绝句 渔光曲 耳畔渔光曲,沙滩女子忙...

  • 怎样选一款合适的包包搭配旗袍

    怎样选一款合适的包包搭配旗袍 2022-07-21 服装自古就是一种形象语言,可以展示出着装者的身份、年龄、性格、...

  • 22-无蛋糕,不生日!

    ——勤复盘,能翻盘(这是第22篇记录)2022-07-21 总结: 1.能拿结果的前提是,做好过程管控; 2.对于...

  • 0262整理|就这样读懂心理学

    2022-07-21 北京 晴天5点醒来,6点一刻起床。今日读书:稻盛和夫《干法》 持有正确的思维满怀热情付出不亚...

  • 哪有什么岁月静好

    2022-07-21 1 今天阴有小雨。 这雨很奇怪,我下楼时有小雨,穿过中山东路往秦淮区去就几乎没雨了。把心心念...

网友评论

      本文标题:2022-07-21

      本文链接:https://www.haomeiwen.com/subject/pywuirtx.html