搭建 Visual Studio Code 开发环境
rust
首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code。
Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install
Visual Studio Code:https://code.visualstudio.com/Download
Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的#### 是 Windows 操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW + GCC 编译环境(Cygwin 还没有测试)。
安装 Rust 编译工具
rust
Rust 编译工具可以去官方网站下载: https://www.rust-lang.org/zh-CN/tools/install。
macOS、Linux 或其它类 Unix 系统要下载 Rustup 并安装 Rust,请在终端中运行以下命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows 要下载 rustup-init.exe 可执行文件。
下载好的 Rustup 在 Windows 上是一个可执行程序 rustup-init.exe。
现在执行 rustup-init 文件:
介绍
Rust 是一种系统编程语言,注重安全、并发和性能。它由 Mozilla Research 开发,并首次于 2010 年发布。
变量与可变性
rust
fn main() {
let x = 5;
println!("The value of x is: {}", x);
let mut y = 5;
y = 6;
println!("The value of y is: {}", y);
}
数据类型
Rust 中的标量类型包括整型、浮点型、布尔型和字符类型。
rust
fn main() {
let guess: u32 = "42".parse().expect("Not a number!");
let x = 2.0; // f64
let y: f32 = 3.0; // f32
let t = true;
let c = 'z';
}
函数
函数是 Rust 代码的基本单元。
rust
fn main() {
another_function();
}
fn another_function() {
println!("Another function.");
}
条件
条件表达式允许根据条件执行不同的代码。
rust
fn main() {
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else {
println!("number is not divisible by 3 or 4");
}
}
循环
Rust 支持三种类型的循环:loop
、while
和 for
。
loop
rust
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("The result is {}", result);
}
while
rust
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("LIFTOFF!!!");
}
for
rust
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("The value is: {}", element);
}
}
所有权
Rust 的所有权系统是其内存安全的关键。
rust
fn main() {
let s1 = String::from("hello");
let s2 = s1;
// println!("{}", s1); // 这行代码将会出错,因为 s1 的所有权已经转移给了 s2
}
引用与借用
引用允许你在不取得所有权的情况下使用值。
rust
fn main() {
let s1 = String::from("hello");
let len = calculate_length(&s1);
println!("The length of '{}' is {}.", s1, len);
}
fn calculate_length(s: &String) -> usize {
s.len()
}
结构体
结构体用于将相关的数据组合在一起。
rust
struct User {
username: String,
email: String,
sign_in_count: u64,
active: bool,
}
fn main() {
let user1 = User {
username: String::from("someusername123"),
email: String::from("someone@example.com"),
sign_in_count: 1,
active: true,
};
}
枚举
枚举允许你定义一个类型的所有可能值。
rust
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn main() {
let quit = Message::Quit;
let move_message = Message::Move { x: 10, y: 20 };
}
错误处理
Rust 通过 Result
和 Option
枚举来处理错误。
rust
use std::fs::File;
use std::io::ErrorKind;
fn main() {
let f = File::open("hello.txt");
let f = match f {
Ok(file) => file,
Err(ref error) if error.kind() == ErrorKind::NotFound => {
match File::create("hello.txt") {
Ok(fc) => fc,
Err(e) => panic!("Tried to create file but there was a problem: {:?}", e),
}
},
Err(error) => {
panic!("There was a problem opening the file: {:?}", error)
},
};
}
泛型
泛型允许你编写在多种类型上工作的代码。
rust
fn largest<T: PartialOrd>(list: &[T]) -> &T {
let mut largest = &list[0];
for item in list {
if item > largest {
largest = item;
}
}
largest
}
fn main() {
let number_list = vec![34, 50, 25, 100, 65];
let result = largest(&number_list);
println!("The largest number is {}", result);
let char_list = vec!['y', 'm', 'a', 'q'];
let result = largest(&char_list);
println!("The largest char is {}", result);
}
Trait
Trait 类似于其他语言中的接口。
rust
pub trait Summary {
fn summarize(&self) -> String;
}
pub struct Post {
pub title: String,
pub author: String,
pub content: String,
}
impl Summary for Post {
fn summarize(&self) -> String {
format!("{}, by {} ({})", self.title, self.author, self.content)
}
}
fn main() {
let post = Post {
title: String::from("Rust Programming"),
author: String::from("Steve Klabnik"),
content: String::from("Content of the post..."),
};
println!("New post: {}", post.summarize());
}
结论
Rust 是一种功能强大且灵活的编程语言,适用于各种类型的项目。通过学习 Rust 的基本语法和核心概念,你可以编写安全、高效的代码。