【第一课】Rust入门

目录

前言

安装

编译运行第一个rust程序

更高级的工具Cargo

总结


前言

这是rust学习的入门第一课,对于rust不做过多介绍,网上介绍的很多,是一门很值得学习的语言,不管第一语言是什么,以我个人为例,第一语言是Java,随着工作不断接触过Scala(大数据领域),Python等语言,学习Rust对于编程生涯都是极有帮助的,它会让你更加理解内存的变化,从另一种角度去理解垃圾回收,话不多说,让我们开始看看这门看似不火,实则趣味十足的编程语言吧

有什么建议也可以提给我,我和大家一样,一起学习,一起进步~!

安装

安装地址:入门 - Rust 程序设计语言 (rust-lang.org)

这是Rust的安装地址,按照地址上的说明可以顺利的安装Rustup,Rustup是我们要接触的第一个工具,这个工具帮助我们管理rust的版本,有点类似于Java世界中的SDKMan,或者是mac中homebrew。

学习工具的方法在这里只有2个:

1.上手使用,使用命令去学习,比如下图,安装rustup后,使用rustup -h可以看到rustup的使用指南,自己试一试每一个命令,非常推荐这种方式,记住每一个用法很难,掌握这种方式去解决问题才是正解。

比如rustup update,该命令可以升级rust版本,体验新特性

2.近几年大语言模型很火,可以问问GPT,或者像文心一言,通义千问等大模型

使用rustup show可以看到安装的rust版本,stable是稳定版,关于rust的版本说明,感兴趣可以自行百度,一般都使用稳定版,1.18.0是版本号,rustc类似javac

stable-aarch64-apple-darwin (default)

rustc 1.81.0 (eeb90cda1 2024-09-04)

编译运行第一个rust程序

(1)新建一个文件hi_rust.rs,rs是rust程序的文件名扩展。

文件内容如下:一段非常简单的helloworld程序

rust 复制代码
fn main(){
	println!("hello rust");
}

代码分析:

fn是function的缩写,表示定义一个main函数;和java一样使用{}表示函数体,println!表示一个宏,使用起来像函数,但是比函数功能要强大很多,宏的调用使用!,所以不用奇怪,有!的就是宏,没有的就是函数,关于宏,我们后面再详细说

其实在vscode中点开println!的源码(如下),大概也可以看懂对输入参数做打印输出的功能

rust 复制代码
#[macro_export]
#[stable(feature = "rust1", since = "1.0.0")]
#[cfg_attr(not(test), rustc_diagnostic_item = "println_macro")]
#[allow_internal_unstable(print_internals, format_args_nl)]
macro_rules! println {
    () => {
        $crate::print!("\n")
    };
    ($($arg:tt)*) => {{
        $crate::io::_print($crate::format_args_nl!($($arg)*));
    }};
}

和java一样,我们也需要使用rustc来编译rust源文件,编译之后会得到一个可执行文件

(2)编译命令:rustc hi_rust.rs

(3)当前目录下会多出来一个可执行文件,执行:./hi_rust

如果是windows平台上,编译后是.exe的可执行文件,可以双击执行

更高级的工具Cargo

到此为止,手动rustc,手动执行的方式学到这里就可以了,就好像java的学习,javac也只是第一课学一下,后面都是接触更高级的工具,像maven,gradle这种。在Rust的世界中,也有一个这样的工具,叫做Cargo,Cargo会帮助我们下载依赖,编译代码,Cargo也是我们接触的第二个工具,第一个是Rustup,在我们安装rustup的时候,Cargo也帮助我们安装好了,同样的,使用cargo -h是最好的学习cargo的方式。

我们使用Cargo工具来实现一个hello_world程序

(1)使用cargo init hello_world来创建一个项目

打开hello_world项目,这里使用vscode打开,vscode需要下载的插件为rust-analyzer。可以看到cargo init的项目有src目录,就是源代码的目录,git也创建好了,Cargo.toml文件就类似maven项目的pom.xml文件,是管理rust项目的依赖文件。

(2)使用cargo build 编译项目,也可以加上参数--release,即cargo build --release

cargo build会在target/debug下生成可执行文件

cargo build --release会在target/release下生成可执行文件

这两的区别就是release的可执行文件是经过编译器深度优化的,性能更好,平时开发cargo build即可,上线用cargo build --release

(3)使用cargo run执行

同样的,cargo run 也可以加上--release来执行优化后的可执行文件

总结

在本文中,主要介绍了2个工具的基本使用,更深层次的使用技巧会在后面的文章中提起,感兴趣也可以自己在命令行使用-h查看每个命令的介绍和使用指南。下期我们来看下rust中的变量与数据类型。

rustup:rust的安装管理工具

cargo:rust项目的包管理工具和构建工具

相关推荐
苏近之16 分钟前
不要害怕 Rust 中的指针
rust·源码阅读
UestcXiye13 小时前
Rust 学习笔记:Rust 简介
rust
若愚679219 小时前
前端与Rust后端交互:跨越语言鸿沟 (入门系列三)
前端·rust·交互
寻月隐君1 天前
Rust实战:打造高效字符串分割函数
后端·rust·github
Lx3521 天前
🌱 Rust内存管理黑魔法:从入门到"放弃"再到真香
rust
wqfhenanxc1 天前
Mixing C++ and Rust for Fun and Profit 阅读笔记
c++·笔记·rust
UestcXiye1 天前
Rust 学习笔记:函数和控制流
rust
Source.Liu2 天前
【mdlib】0 全面介绍 mdlib - Rust 实现的 Markdown 工具集
rust·markdown
机构师2 天前
<rust><iced><GUI>iced中的复合列表部件:combo_box
后端·rust
景天科技苑2 天前
【Rust】Rust中的枚举与模式匹配,原理解析与应用实战
开发语言·后端·rust·match·enum·枚举与模式匹配·rust枚举与模式匹配