开箱体验Rust,Come on!!!

简介: 开箱体验Rust,Come on!!!

    最近在看一下桌面端应用的开发,在看了一些Electron的使用后又了解到了一个更加新颖的Tauri的框架,它在内部使用到了Rust,同时发现最近的一些培训机构也在跟风推Rust的一些引流课程,所以还是需要了解和学习一下Rust的入门知识好支持后续学习Tauri。


快速配置环境(Win11,64位):


  1. 安装 Microsoft C++ 生成工具:下载后双击安装即可,注意安装后需要重启电脑和安装版本建议2019,如果电脑有安装2017的生成工具需要先卸载掉。
    8.png
  2. 安装64位Rustup工具:同样是双击后开始安装,在安装结束后建议将C:\Users\用户名\.cargo\bin配置到环境变量的Path中方便终端命令直接使用。
    9.png
  3. 检查是否安装成功,我们通常都是使用命令能检查到版本视为安装正常,我们这里检查cargo的版本和rustc的版本。
  1. cargo 版本检测:cargo --version
  2. rustc 版本检查:rustc --version
    10.png


认识Cargo:


在我们使用Rustup安装的时候默认就安装了CargoCargo是用来构建和管理依赖包的一个工具,我们列举一下Cargo的常用命令。

序号 终端命令 功能
1 cargo new 创建项目并初始化git仓库
2 cargo build 编译项目(debug),增加--release发布构建
3 cargo run 编译项目(未编译或源码有修改)& 运行项目
4 cargo check 仅检查代码,确保可通过编译,比build速度快
6 cargo publish 发布自定义库

我们可以在crates.io上找到我们需要用到的第三方库,我们也可以将自己编写的自定义库发布到crates.io

11.png


编写代码前的准备:


  1. VSCode相关插件
  2. IntelliJ IDEA插件
    注:我经常使用的编辑器就是这两种了,当然还有其他的一些编辑器也有相关的插件支持,可以访问Rust文档


使用Cargo创建新项目:


  1. 通过使用cargo new hello-rust来创建一个新的项目,下面是生成的目录结构;
hello-rust
|- Cargo.toml
|- src
  |- main.rs
复制代码
  1. 运行cargo run就可以在终端看到经过了编译执行到输出我们熟悉了Hello, world!。
    12.png
    注:Cargo.toml文件中记录了项目名称,版本号,Rust版本和依赖的配置,等同于NodeJs开发中的package.json,Android开发中的AndroidManifest.xml。


Rust示例程序:


  1. 学会如何导入依赖;
  2. 学会如何输出语句使用;
  3. 了解什么是可变变量;
  4. 了解什么是关联函数;
  5. 认识&取地址符;


代码详解:

// 使用use关键字导入标准库/其他库
use std::io;
fn main (){
    // !代表是宏与函数不同 
    println!("请输入一个数字");
    // 使用mut来声明可变变量,仅使用let定义的变量没办法二次赋值
    // ::代表new是String的关联函数,类同Java或其他语言中的静态方法
    let mut guess = String::new();
    // 通过在标准库导入io模块来读取终端输入
    // expect:会在程序异常时执行
    // &guess:表示我们在此使用guess的引用,它们指向内存的同一块空间
    // &mut:表示此处的接收的引用也是可变的
    io::stdin().read_line(&mut guess).expect("读取失败");
    // 通过{}占位符来输出guess
    println!("输入的数字是:{}", guess);
}
复制代码


终端预览:

13.png注:你会看到在我们第二次执行cargo run的时候没有Compiling信息的输出,这是因为我们再次执行的时候没有源码被修改,合理减少编译来加快执行。


安装和使用第三方依赖:


  1. 依赖的查找我们上面有交代,可以通过crates.io搜索;
  2. 将需要安装的依赖按照依赖名 = version的格式配置到Cargo.toml文件中的[dependencies]下方;
  3. 更改配置文件后运行cargo build将执行安装,当然我们安装了VSCode插件就自动安装完成了并会自动更新Cargo.lock文件来锁定依赖的详细版本,切勿手动修改。


安装rand库来生成随机数:


  1. rand = "0.8.4"配置到[dependencies]后等待插件安装或手动执行cargo build
  2. 导入rand库use rand::Rng;
  3. 编写随机数生成代码:
fn main() {
    let mut rng = rand::thread_rng();
    // 1~100的随机数生成
    let random_num = rng.gen_range(1..101);
    println!("生成随机数:{}", random_num)
}
复制代码

文档中的示例(rust-random.github.io/book/guide-…):1.png


总结:


     初次感觉Rust的语法跟其他的编程语言差别还是挺大的,不过&取地址符的使用看起来会更清晰,也有感觉啰嗦的地方,后续还准备写一些Rust的语法的使用来整体的体验一下这款高效,高可靠的编程语言的设计。



相关文章
|
10月前
|
Rust 安全 开发者
Rust之旅:打造并发布你的首个Rust库
本文将引导读者走进Rust的世界,从基础概念讲起,逐步深入到如何创建、测试、打包和发布自己的Rust库。通过实际操作,我们将理解Rust的独特之处,并学会如何分享自己的代码到Rust社区,从而为开源世界做出贡献。
|
5月前
|
Rust 安全 开发工具
探索 Rust:系统编程语言的新纪元
【10月更文挑战第17天】介绍了 Rust 语言的核心特性,如内存安全、强大的并发编程模型和接近 C/C++ 的性能。文章还涵盖了 Rust 的开发工具,如 Cargo 和 Rustup,以及其在业界的应用,包括微软 Azure 和 Firefox 浏览器。Rust 正在成为系统编程领域的新星,为开发者带来高性能和安全性。
|
6月前
|
Rust 安全 Java
探索 Rust:系统编程语言的新纪元
Rust 是一种由 Mozilla 研究院开发的开源系统编程语言,以其内存安全、高性能和现代并发工具著称,已连续多年被评为 Stack Overflow 最受喜爱的编程语言。Rust 通过所有权系统和借用检查等机制确保内存安全,并具备无垃圾回收、强大类型系统及高效并发编程特性。它广泛应用于系统级应用、WebAssembly、区块链技术和游戏开发等领域。Rust 提供丰富的学习资源和开发工具,包括官方文档、书籍、Cargo 包管理器和活跃社区支持,正逐渐成为系统编程领域的新力量。
|
8月前
|
前端开发 JavaScript Go
|
8月前
|
Rust 安全 编译器
Rust中的生命周期管理:深入理解与实践
【7月更文挑战第10天】Rust中的生命周期是确保内存安全和避免数据竞争的关键机制。通过深入理解生命周期的概念、使用场景及省略规则,我们可以编写出更加安全、高效的Rust代码。虽然生命周期管理在初学时可能显得有些复杂,但一旦掌握,它将成为我们编写Rust代码时不可或缺的工具。希望本文能够帮助你更好地理解Rust中的生命周期管理,并在实际开发中灵活运用。
|
10月前
|
Rust JavaScript 前端开发
【一起学Rust | 框架篇 | Frui框架】rust一个对开发者友好的GUI框架——Frui
【一起学Rust | 框架篇 | Frui框架】rust一个对开发者友好的GUI框架——Frui
2591 0
|
9月前
|
机器学习/深度学习 Rust 安全
Rust语言:为何备受开发者青睐?
Rust编程语言以其内存安全、高性能、并发编程支持和强大社区获得青睐。作为系统编程语言,Rust的所有权与借用检查机制确保了内存安全,适用于高可靠性系统。它拥有接近C/C++的运行时性能,适合游戏开发和数据分析。Rust的并发特性包括轻量级线程和原子操作,便于构建高性能并发系统。活跃的社区和完善的生态系统,如丰富的库和框架,加速了开发者的学习和项目开发进程。【6月更文挑战第3天】
138 3
|
10月前
|
Rust 安全 开发者
探索新一代编程语言:Rust
【4月更文挑战第28天】
126 0
|
10月前
|
存储 JSON JavaScript
60+开箱即用的工具函数库xijs更新指南(v1.2.5)
60+开箱即用的工具函数库xijs更新指南(v1.2.5)
106 1
|
10月前
|
Rust 安全 Java
为什么 Rust 备受开发者青睐?
【2月更文挑战第1天】为什么 Rust 备受开发者青睐?
61 1