5

征服 Rust 编程世界的终极指南

 1 year ago
source link: https://www.51cto.com/article/755512.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

征服 Rust 编程世界的终极指南

作者:Linux迷 2023-05-23 18:31:14
Rust 适用于构建各种程序,包括 Web 应用、命令行工具和网络服务。Rust 拥有许多现代编程语言应具备的特性,如并发性、类型推断等。

自 2015 年发布以来,Rust 已经成为开发者中最受喜爱的编程语言之一。Rust 具有出色的性能和安全特性,以直观简洁的语法著称。

Rust 适用于构建各种程序,包括 Web 应用、命令行工具和网络服务。Rust 拥有许多现代编程语言应具备的特性,如并发性、类型推断等。

36c3d9b368bd1a16144717be4f333c3bd71345.jpg

开始使用 Rust

Rust 是一个跨平台的编程语言,可在大多数操作系统上运行。要开始使用Rust,请前往官方Rust网站,并安装适合您操作系统的首选版本。

安装完Rust后,您可以开始在具有.rs扩展名的Rust文件中编写程序。Rust非常灵活且易于学习。如果您具有先前的编程经验,您会发现它很简单。

Rust 中的变量和常量

Rust具有高度表达性,有多种声明变量的方法。您可以使用let关键字来声明变量。

以下是在Rust中声明变量的示例:

let a: String;
let b: i32;
let c: () = ();

a和b变量分别是一个字符串和一个整数。c变量是Rust的单位类型,用作函数和表达式的占位符。

在可选的数据类型声明之后,您可以使用等号来声明和初始化具有值的变量。

fn main(){
    let age: String = String::from("five years old");

    let age = 5; // equivalent to let age: i32 = 5;
    println!("{}", age);
}
334e46a205b2f898b6c778fb5c5d3fc0fd9a2f.png

该程序在打印之前声明了两个age变量,并使用println!宏进行打印。第一个age变量指定了数据类型,而第二个没有。

在声明变量时,您不必指定变量的数据类型。Rust编译器会在编译时根据值的数据类型推断出类型。

您还可以使用const关键字类似于声明变量来声明常量:

const age: &str = "five years old";

您无法修改声明为常量的变量的值。

为 Rust 程序添加注释

Rust提供了单行注释和块注释的功能。您可以使用双斜杠(//)进行单行注释:

fn main() {
    // This is a line comment
    let x = 5; // This comment explains the purpose of the `x` variable
}

对于多行注释(块注释),使用斜杠后跟星号(/)开始块注释,并使用星号后跟斜杠(/)关闭块注释:

fn main() {
    /*
    This is a block comment that spans multiple lines.
    It is often used to describe a larger block of code.
    */
    let x = 5;
}

您的注释应该简明扼要。

Rust 中的数组

数组是具有固定大小的、相同数据类型的元素集合。默认情况下,Rust在堆栈上分配数组。

下面是如何在Rust中声明数组的方法:

fn main() {
    let numbers = [1, 2, 3, 4, 5];
}

numbers数组包含五个元素。您可以使用索引访问数组中的位置上的值:

fn main() {
    let numbers = [1, 2, 3, 4, 5];
    let x = numbers[3];
    println!("{}", x)
}
1798dc6040efdc932542540de36e84d66f7a72.png

主函数打印访问数组的第四个元素的变量x的值。

Rust 中的向量

Rust提供了向量来弥补数组的局限性。向量具有动态大小,可以根据需要增长和缩小。

下面是在Rust中声明向量的方法:

fn main() {
    let my_vec: Vec<i32> = vec![1, 2, 3, 4, 5];
    let x = my_vec[3];
    println!("{}", x)
}
725a7be27eedbbaceed175e19edb92df2130d8.png

my_vec向量是一个包含32位整数的向量。变量x访问向量的第四个元素,主函数将其值打印到控制台上。

Rust 的条件语句

条件语句是Rust程序中用于做决策的控制结构之一。你可以使用if和else关键字来处理程序中的决策。

下面是一个if语句的例子,根据两个整数是否相等将一个字符串打印到控制台上。

fn main() {
    let a: i32 = 12;

    if a == 12 {
        println!("a equals twelve");
   }
}
441a08450309c90a2e9627591fd78ef19f3c7c.png

主函数使用println!宏打印字符串,因为变量等于12。

你可以使用else关键字来处理if语句为false的情况:

fn main() {
    let a: i32 = 12;

    if a == 123 {
        println!("a equals twelve");
    } else {
        println!("a does not equal twelve");
    }
}
d54b6dd296bdf5a4dd531913dadc8bbd39444c.png

在这个例子中,else语句会执行,因为a的值不等于123。

你可以使用match关键字来处理复杂的条件语句:

fn main() {
    let age: i32 = 7;

    match age {
        1 => println!("one"),
        2 => println!("two"),
        3 => println!("three"),
        _ => println!("zero"),
    }
}
16fbcf4542b6dde4bfa3208e032f7ee8d77cbb.png

主函数使用match语句将age变量与匹配的case进行匹配,并执行与值匹配的表达式。下划线(_)是默认语句,在值有匹配时执行。

Rust 中的循环

Rust提供了用于重复任务的循环。Rust有三种主要类型的循环:loop、while和for循环。

loop关键字创建一个无限循环,直到遇到break关键字才会停止:

fn main() {
    loop {
        println!("重复打印,直到遇到break语句。");
        break;
    }
}
a50753c661e4ce518cc487f4b56b465c553f86.png

while循环在条件为true时重复执行代码块:

fn main() {
    let mut count = 0;

    while count < 5 {
        println!("The count is {}", count);
        count += 1;
    }
}

for循环适用于迭代集合中的项,比如数组:

fn main() {
    let numbers = [1, 2, 3, 4, 5];

    for item in numbers.iter() {
        println!("The current item is {}", item);
    }
}

这个for循环遍历numbers数组,并将每个项打印到控制台上。

声明和调用 Rust 函数

使用fn关键字声明Rust函数,然后是函数名、参数列表和返回类型(如果有)。

下面是一个带有参数和返回类型的函数声明示例:

fn add(a: i32, b: i32) -> i32 {
    return a + b;
}

add函数接受两个32位整数参数,并返回一个32位整数,即两个参数的和。

要从代码的其他位置调用函数,只需指定函数名和参数(如果有):

fn main() {
    let result = add(2, 3);
    println!("2 + 3 = {}", result);
}

result变量保存调用add函数的结果。main函数使用println!宏将结果打印到控制台上。

Rust 中的结构体

Rust 提供了结构体(struct)来定义自定义数据类型,用于将相关的值进行分组。结构体是创建具有特定属性的对象的蓝图。

下面是如何声明一个结构体:

struct Person {
    name: String,
    age: u32,
    is_male: bool,
}

Person结构体有三个字段:一个String类型、一个无符号32位整数和一个布尔值。

在定义结构体之后,你可以在程序的其他部分创建它的实例:

fn main() {
    let person1 = Person {
        name: String::from("Candace Flynn"),
        age: 16,
        is_male: false,
    };
}

person1变量是Person结构体的一个实例。在实例化时,你可以为结构体的字段赋值。你可以创建任意多个结构体的实例。

你可以在 Rust 中实现面向对象编程(OOP)的概念

Rust非常灵活,你可以使用内置的数据结构(如结构体)在Rust中实现面向对象编程的概念。

你可以使用结构体作为类的替代品。通过Rust的结构体,你可以定义类型的蓝图,并使用Rust提供的结构体功能实现不同的面向对象编程概念。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK