【第一课】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项目的包管理工具和构建工具

相关推荐
唐 城5 小时前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust
从善若水6 小时前
【2024】Merry Christmas!一起用Rust绘制一颗圣诞树吧
开发语言·后端·rust
gerrylon0077 小时前
rust学习: 有用的命令
rust
brrdg_sefg15 小时前
Rust 在前端基建中的使用
前端·rust·状态模式
m0_7482309415 小时前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
SomeB1oody1 天前
【Rust自学】6.1. 定义枚举
开发语言·后端·rust
SomeB1oody1 天前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
itas1092 天前
Rust调用C动态库
c语言·rust·bindgen·bindings·rust c绑定
SomeB1oody2 天前
【Rust自学】5.1. 定义并实例化struct
开发语言·后端·rust
m0_748236112 天前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust