【自学笔记】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语言基础知识点总览。

相关推荐
DP DPharness11 小时前
ClearAI、记忆插件与普通笔记,三种让 Agent 记住的路数对比
笔记
“AI国潮设计-小江”12 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
程序喵大人12 小时前
【C++入门】编译链接模型 - 01 一个 C++ 程序是怎样变成可执行文件的
开发语言·c++·编译链接模型
piikee13 小时前
粤语初学入门:从粤拼、九声六调到开口,一个普通话母语者的练习笔记
笔记·粤语入门·怎么学习粤语
sunshine22 girl13 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
菜鸟~noob23314 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
惊讶的猫15 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python
cmpxr_15 小时前
【MicroPython】如何刷新ESP8266的固件
开发语言·micropython
搭贝15 小时前
上厕所的时间搭好一套系统:AI自动生成实测
开发语言·人工智能·低代码·ai·php·搭贝
智感子16 小时前
智能称重·数据上云:从仪表读数到可追溯的计量凭证
开发语言·php