一、rust简介
(一)rust是什么
Rust语言是一种高效可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。
Rust语言由Mozilla开发,最早发布于2014年9月。Rust的编译器是在MIT License和Apache License 2.0双重协议声明下的免费开源软件。
(二)Rust语言的特点
1.高性能 - Rust速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
2.可靠性 - Rust丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。
3.生产力 - Rust拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 ------ 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
(三)Rust的应用
Rust语言可以用于开发:
1.传统命令行程序 - Rust编译器可以直接生成目标可执行程序,不需要任何解释程序。
2.Web应用 - Rust可以被编译成WebAssembly,WebAssembly是一种JavaScript的高效替代品。
3.网络服务器 - Rust用极低的资源消耗做到安全高效,且具备很强的大规模并发处理能力,十分适合开发普通或极端的服务器程序。
4.嵌入式设备 - Rust同时具有JavaScript一般的高效开发语法和C语言的执行效率,支持底层平台的开发。
二、配置rust开发环境
(一)安装
先安装rustup,然后使用rustup下载安装rust
rustup是管理Rust版本的命令行工具
我用的是opensuse,使用如下命令:
sudo zypper in rustup
rustup default stable
(二)检查
检查是否正确安装了Rust
$ rustc -V
rustc 1.71.0 (8ede3aae2 2023-07-12)
rustc是rust编译器,后面是版本号、提交哈希值、提交日期
(三)更新
rustup update
(四)卸载
要卸载Rust和rustup,在终端执行以下命令即可卸载:
$ rustup self uninstall
三、安装VSCode的Rust插件
我们使用VSCode编写代码
在VSCode的左侧扩展目录里,搜索安装rust-analyzer插件
四、创建第一个项目
(一)创建项目目录
首先创建一个存放Rust代码的目录。
$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world
(二)编写并运行Rust程序
新建一个源文件,命名为main.rs。Rust源文件总是以.rs结尾。
如果文件名包含多个单词,那么按照命名习惯,应当使用下划线来分隔单词。例如命名为hello_world.rs,而不是helloworld.rs。
现在打开刚创建的main.rs文件,输入代码
fn main() {
println!("Hello, world!");
}
保存文件,编译运行文件。
$ rustc main.rs
$ ./main
(三)分析这个Rust程序
fn main() {
}
这几行定义了一个名叫main的函数。main函数是一个特殊的函数,在可执行的Rust程序中,它总是最先运行的代码。第一行代码声明了一个叫做main的函数,它没有参数也没有返回值。
函数体包裹在 {} 中。Rust要求所有函数体都要用花括号包裹起来。一般来说,将左花括号与函数声明置于同一行并以空格分隔,是良好的代码风格。
在main函数中有如下代码:
println!("Hello, world!");
这行代码在屏幕上打印文本。
这里有四个重要的细节需要注意。
首先Rust的缩进风格使用4个空格,而不是1个制表符(tab)。
第二,println! 调用了一个Rust宏(macro)。如果是调用函数,则应输入println(没有!)。
第三,"Hello, world!" 是一个字符串。我们把这个字符串作为一个参数传递给println!。
第四,该行以分号结尾(;),这代表一个表达式的结束和下一个表达式的开始。大部分Rust代码行以分号结尾。
(四)编译和运行是彼此独立的步骤
在运行Rust程序之前,必须先使用Rust编译器编译它
$ rustc main.rs
这与gcc和clang类似。编译成功后,Rust会输出一个二进制的可执行文件。
$ ls
main main.rs
在Linux和macOS,你会看到两个文件。
在Windows你会看到三个文件。
main.exe
main.pdb
main.rs
运行
$ ./main
在终端上打印出Hello, world!。