首页 > 其他分享 >rustling学习随笔

rustling学习随笔

时间:2024-10-03 13:33:44浏览次数:7  
标签:made rustling your 学习 template 随笔 eq order Rust

序言

rustling是一个关于rust的练习题的项目.可以帮助大家通过完成一个项目的方式练习rust的语法,我认为对于补充我rust现学现卖过程中的情况很有帮助.

下边是GPT对它的介绍:

Rustling 是专为那些想要学习 Rust 编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经验的开发者,Rustling 都能提供一个友好的环境来探索 Rust 的独特功能。
特点:

  • 互动性: 通过实际编写代码并即时看到结果,你可以更好地理解 Rust 的工作原理。
  • 渐进式难度: 练习按照难易程度排序,从基础到高级逐步引导你深入 Rust。
  • 涵盖广泛: 练习覆盖了 Rust 的主要方面,包括所有权、借用、生命周期、错误处理等。
  • 社区支持: 作为一个活跃的开源项目,Rustling 拥有一个热情的支持社区,你可以在这里找到帮助或贡献自己的力量。
  • 易于安装: 只需几个简单的命令,就可以在你的机器上设置好 Rustling,并开始你的学习之旅。

structs2

// structs2.rs
//
// Address all the TODOs to make the tests pass!
//
// Execute `rustlings hint structs2` or use the `hint` watch subcommand for a
// hint.

// I AM NOT DONE

#[derive(Debug)]
struct Order {
    name: String,
    year: u32,
    made_by_phone: bool,
    made_by_mobile: bool,
    made_by_email: bool,
    item_number: u32,
    count: u32,
}

fn create_order_template() -> Order {
    Order {
        name: String::from("Bob"),
        year: 2019,
        made_by_phone: false,
        made_by_mobile: false,
        made_by_email: true,
        item_number: 123,
        count: 0,
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn your_order() {
        let order_template = create_order_template();
        // TODO: Create your own order using the update syntax and template above!
        // let your_order =
        let your_order = Order {
            name: String::from("Hacker in Rust"),
            count: 1,
            ..order_template
        };
        assert_eq!(your_order.name, "Hacker in Rust");
        assert_eq!(your_order.year, order_template.year);
        assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
        assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
        assert_eq!(your_order.made_by_email, order_template.made_by_email);
        assert_eq!(your_order.item_number, order_template.item_number);
        assert_eq!(your_order.count, 1);
    }
}

这里注意这个,这里有一个结构体更新语法的问题:

let your_order = Order {
            name: String::from("Hacker in Rust"),
            count: 1,
            ..order_template
        };

标签:made,rustling,your,学习,template,随笔,eq,order,Rust
From: https://www.cnblogs.com/chenhan-winddevil/p/18445625

相关文章

  • TS学习笔记(一)
    1.js的灵活性,对小项目而言非常好,但是对于大的项目而言,如果没有变量类型检查,随着变量类型的数量成倍的增加,你总有记错、遗漏的时候2.要解决灵活性带来的隐患,我们需要的是类型。更准确的说,是项目开发时的类型检查能力。3.TS由三个部分组成:类型、语法与工程。4.TS内置了一批类......
  • 深度学习(模型参数直方图)
        模型参数直方图可以展示模型参数在训练过程中的分布情况。通过直方图,可以了解模型的学习状态,识别过拟合或欠拟合问题,从而进行模型调优。下面以ResNet18为例,显示了不同层的参数直方图。importtorchvisionfrommatplotlibimportpyplotaspltimporttorchmod......
  • SCoRe: 通过强化学习教导大语言模型进行自我纠错
    大语言模型(LLMs)在推理任务中,如数学问题求解和编程,已经展现出了优秀的性能。尽管它们能力强大,但在实现能够通过计算和交互来改进其回答的算法方面仍然面临挑战。现有的自我纠错方法要么依赖于提示工程,要么需要使用额外的模型进行微调,但这些方法都有局限性,往往无法产生有意......
  • Zookeeper 基础学习
    Zookeeper基础学习​ Zookeeper官网:http://zookeeper.apache.org/注:以下操作在CentOS7环境操作。​ Zookeeper是Apache的一个分布式服务框架,是ApacheHadoop的一个子项目。官方文档上这么解释Zookeeper,它主要是用来解决分布式应用中经常遇到的一些数据管......
  • 初中数学随笔
    14.1整式的乘法:14.1同底数幂的乘法:同底数幂相乘,底数不变,指数相加。例:\(a^2\timesa^3=a^5,b^x\timesb^y=b^{x+y}\)14.2幂的乘方:幂的乘方,底数不变,指数相乘。例:\((a^2)^3=a^6,(b^x)^y=b^{xy}\)14.1.3积的乘方:积的乘方,等于把积的每一个因式分别乘方......
  • git学习笔记 1
    1、安装配置git安装:https://git-scm.com/book/zh/v2/起步-安装-Git文档:https://git-scm.com/docs初次配置gitconfig--globaluser.name"你的名字"gitconfig--globaluser.email"你的邮箱"检测配置是否成功gitconfig--list在里面找到user.name和user.email......
  • 【动态Web API学习(三)】动态方法
    1.应用程序模型ASP.NETCoreMVC根据控制器、操作、操作参数、路由和筛选器的结果,定义模型如下:ApplicationModel、控制器(ControllerModel)、操作(ActionModel)和参数(ParameterModel)。上一节中只是告诉系统封哪个是控制器,还要为控制器模型初始化值,比如路由、请求方式(post、get)、方......
  • 深度学习(可视化卷积核)
       可视化卷积核参数对理解卷积神经网络的工作原理、优化模型性能、提高模型泛化能力有一定帮助作用。下面以resnet18为例,可视化了部分卷积核参数。importtorchvisionfrommatplotlibimportpyplotaspltimporttorchmodel=torchvision.models.resnet18(pretrai......
  • 使用 NVIDIA Container Toolkit 和 Docker 配置 GPU 深度学习环境
    在深度学习开发中,充分利用GPU资源是提高模型训练效率的关键。本文将详细介绍如何安装NVIDIAContainerToolkit,并配置Docker容器以利用GPU进行深度学习训练。我们将结合NVIDIAContainerToolkit的安装和Docker容器的配置,确保你拥有一个高效的GPU开发环境。1.安装......
  • 学习笔记:A Introduction to inertial navigation
    3.2MEMS陀螺的误差特性本节我们分析MEMS陀螺中存在的误差,以及它们对积分后的信号(也就是旋转)的影响。3.2.1常量零偏角速度陀螺的零偏是它在不忍受任何转动时的平均输出,单位度每小时。如果对一个\(\epsilon\)大小的常量零偏进行积分,会导致一个随时间线性增长的角度误差:\(\theta......