【自学笔记】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支持if、else if、else、loop、while、for等控制流语句。

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语言基础知识点总览。

相关推荐
学逆向的4 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi4 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
zhangrelay5 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
Jimmy5 小时前
深夜突袭:我们的午夜战场
笔记·产品·电子书
OpenAnolis小助手6 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
阿尼卡~7 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
志尊宝7 小时前
AI原生前端开发(025):端侧AI实战项目:智能笔记助手
人工智能·笔记·ai-native
lll23526917798 小时前
线下多人发言对比与录音操作
笔记·智能手机
hhhjhl8 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
染指11108 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents