一、引言
嘿,编程小伙伴们!如果你想学习一门新的编程语言,那 Rust 绝对值得你考虑。Rust 是一种系统级编程语言,它结合了高性能、内存安全和并发性,在很多领域都有广泛的应用,像操作系统开发、嵌入式系统、游戏开发等等。这篇入门指南将带你开启 Rust 的学习之旅,让我们一步一步走进这个有趣的编程世界。
二、安装 Rust
安装 Rust 其实很简单,就像安装其他软件一样。我们可以使用 rustup 这个工具来安装和管理 Rust。rustup 就像是一个超级管理员,能帮我们轻松搞定 Rust 的各种版本和组件。
1. 在 Linux 或 macOS 上安装
打开终端,输入下面这个命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
这个命令会从官方网站下载并运行安装脚本。安装过程中,会让你选择安装选项,一般选择默认的就好,然后按回车键,等着它安装完成就行。
2. 在 Windows 上安装
在 Windows 上,你可以从 Rust 官方网站 下载 rustup-init.exe 安装程序。双击运行它,按照安装向导的提示操作,最后也是选择默认选项,点击下一步直到安装完成。
3. 验证安装
安装完成后,在终端输入下面的命令来验证 Rust 是否安装成功:
rustc --version
如果看到输出类似 rustc 1.xx.x (xxxxxx xxxxxx) 的信息,那就说明安装成功啦!
三、第一个 Rust 程序:Hello, World!
每个编程语言的学习之旅通常都是从打印 “Hello, World!” 开始的,Rust 也不例外。下面我们就来写一个简单的 Rust 程序,让它在屏幕上输出这句话。
1. 创建项目文件
首先,打开你喜欢的文本编辑器(比如 Visual Studio Code),新建一个文件,命名为 main.rs。.rs 是 Rust 源文件的扩展名,就像 .py 是 Python 文件的扩展名,.java 是 Java 文件的扩展名一样。
2. 编写代码
在 main.rs 文件中输入以下代码:
fn main() {
println!("Hello, World!");
}
这段代码看起来可能有点奇怪,让我们来解释一下。fn 是 Rust 中定义函数的关键字,main 是一个特殊的函数名,它是程序的入口点,就像 Python 脚本中的代码会从上到下依次执行,Java 程序中的 main 方法是程序开始执行的地方一样。println! 是一个宏,它的作用是把括号里的内容打印到屏幕上。注意这里的 ! 表示它是一个宏,而不是普通的函数。
3. 编译和运行程序
打开终端,进入 main.rs 文件所在的目录,然后输入以下命令来编译程序:
rustc main.rs
rustc 是 Rust 的编译器,它会把我们写的 Rust 代码编译成可执行文件。编译完成后,会在当前目录下生成一个和源文件同名的可执行文件(在 Windows 上是 .exe 后缀,在 Linux 和 macOS 上没有后缀)。接着,输入下面的命令来运行程序:
# 在 Linux 或 macOS 上
./main
# 在 Windows 上
main.exe
如果一切顺利,你会在屏幕上看到 Hello, World! 的输出。
四、变量和数据类型
1. 变量
在 Rust 中,变量默认是不可变的,这和 Python 不太一样。在 Python 里,变量可以随意改变它的值,就像这样:
# Python 代码
x = 5
x = 10 # 可以直接改变 x 的值
print(x)
但在 Rust 中,如果要改变变量的值,需要使用 mut 关键字来声明变量是可变的。看下面的例子:
fn main() {
let x = 5; // 不可变变量
// x = 10; // 这行会报错,因为 x 是不可变的
let mut y = 5; // 可变变量
y = 10; // 可以改变 y 的值
println!("The value of y is: {}", y);
}
let 是 Rust 中声明变量的关键字,通过 mut 我们可以灵活控制变量是否可变。
2. 数据类型
Rust 是一种静态类型语言,这意味着在编译时就需要知道每个变量的类型。不过 Rust 也有类型推断功能,很多时候不需要我们显式地指定类型。下面是一些常见的数据类型:
整数类型
Rust 有多种整数类型,比如 i32 表示 32 位有符号整数,u8 表示 8 位无符号整数。这和 C 语言有点类似,C 语言中也有不同长度的整数类型,像 int、short、long 等。
fn main() {
let a: i32 = 10; // 显式指定类型为 i32
let b = 20; // 类型推断为 i32
println!("a + b = {}", a + b);
}
浮点类型
Rust 有两种浮点类型:f32 和 f64,分别表示 32 位和 64 位浮点数。这和 Python 中的浮点数概念类似,不过 Python 没有区分 32 位和 64 位。
fn main() {
let pi: f64 = 3.14159;
println!("The value of pi is: {}", pi);
}
布尔类型
布尔类型只有两个值:true 和 false,这和 Python、Java 中的布尔类型是一样的。
fn main() {
let is_rust_awesome = true;
if is_rust_awesome {
println!("Rust is awesome!");
}
}
字符类型
Rust 的字符类型用 char 表示,它可以存储任何 Unicode 字符,而不仅仅是 ASCII 字符。这和 C 语言中的 char 类型不同,C 语言的 char 通常只能存储 ASCII 字符。
fn main() {
let c: char = 'A';
println!("The character is: {}", c);
}
五、总结
到这里,我们已经完成了 Rust 学习的第一步。我们学会了如何安装 Rust,写了第一个 “Hello, World!” 程序,还了解了 Rust 中的变量和常见的数据类型。虽然这些知识看起来不多,但它们是我们进一步学习 Rust 的基础。在中篇里,我们将继续探索 Rust 的更多特性,比如函数、控制流等。加油,让我们一起在 Rust 的世界里继续前行!