【自学笔记】Rust语言基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


Rust语言基础知识点总览

1. 变量与数据类型

变量声明

Rust中的变量通过let关键字声明,且默认是不可变的。使用mut关键字可以声明可变变量。

rust 复制代码
let x = 5;        // 不可变变量
let mut y = 10;   // 可变变量
y = 20;           // 修改可变变量的值

数据类型

Rust是静态类型语言,常见的数据类型包括整数、浮点数、布尔值、字符和字符串等。

rust 复制代码
let a: i32 = 42;      // 32位有符号整数
let b: f64 = 3.14;    // 64位浮点数
let is_true: bool = true;
let ch: char = 'A';
let str: &str = "Hello, Rust!";

2. 函数

定义函数

Rust中的函数使用fn关键字定义。

rust 复制代码
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

fn main() {
    let message = greet("World");
    println!("{}", message);  // 输出: Hello, World!
}

控制流

Rust支持ifelse ifelseloopwhilefor等控制流语句。

rust 复制代码
fn main() {
    let number = 4;

    if number % 2 == 0 {
        println!("{} is even", number);
    } else {
        println!("{} is odd", number);
    }

    for i in 1..=5 {
        println!("{}", i);
    }
}

3. 结构体与枚举

结构体

结构体是用户定义的数据类型,可以包含多个字段。

rust 复制代码
struct Person {
    name: String,
    age: u32,
}

fn main() {
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };

    println!("Name: {}, Age: {}", person.name, person.age);
}

枚举

枚举用于表示一组可能的值。

rust 复制代码
enum IpAddr {
    V4(String),
    V6(String),
}

fn main() {
    let home = IpAddr::V4(String::from("127.0.0.1"));
    let loopback = IpAddr::V6(String::from("::1"));

    match home {
        IpAddr::V4(address) => println!("IPv4 address: {}", address),
        IpAddr::V6(address) => println!("IPv6 address: {}", address),
    }
}

4. 模块与包

模块

模块用于组织代码,避免命名冲突。

rust 复制代码
mod math {
    fn add(a: i32, b: i32) -> i32 {
        a + b
    }

    pub fn subtract(a: i32, b: i32) -> i32 {
        a - b
    }
}

fn main() {
    println!("10 - 5 = {}", math::subtract(10, 5));
}

包是Rust项目的构建块,使用Cargo管理。

5. 错误处理

Result类型

Rust使用Result枚举来处理可能的错误。

rust 复制代码
use std::fs::File;

fn read_file(filename: &str) -> Result<String, std::io::Error> {
    let mut file = File::open(filename)?;
    let mut contents = String::new();
    file.read_to_string(&mut contents)?;
    Ok(contents)
}

fn main() {
    match read_file("example.txt") {
        Ok(contents) => println!("File contents: {}", contents),
        Err(e) => println!("Error: {}", e),
    }
}

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,自学记录Rust语言基础知识点总览。

相关推荐
PfCoder2 小时前
C#的判断语句总结
开发语言·c#·visual studio·winform
好看资源平台2 小时前
Java/Kotlin逆向基础与Smali语法精解
java·开发语言·kotlin
wjcroom2 小时前
数字投屏叫号器-发射端python窗口定制
开发语言·python
静候光阴2 小时前
python使用venv命令创建虚拟环境(ubuntu22)
linux·开发语言·python
LuckyLay2 小时前
Golang学习笔记_49——解释器模式
笔记·学习·设计模式·golang·解释器模式
Y1nhl3 小时前
力扣hot100_二叉树(4)_python版本
开发语言·pytorch·python·算法·leetcode·机器学习
阿木看源码3 小时前
bindingAdapter的异常错误
java·开发语言
学习两年半的Javaer4 小时前
Rust语言基础知识详解【九】
开发语言·rust
灵山悟空4 小时前
rust语言match模式匹配涉及转移所有权Error Case
linux·开发语言·rust
m0_748240024 小时前
Rust与Cargo版本关系(Rust版本、rustc、rustup)
开发语言·后端·rust