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

相关推荐
C_心欲无痕3 分钟前
Next.js 的服务端路由:对应api文件夹
开发语言·javascript·ecmascript
zh_xuan15 分钟前
kotlin 类委托
开发语言·kotlin
CryptoPP21 分钟前
主流国际股票行情API接口横向对比:如何选择适合你的数据源?
大数据·笔记·金融·区块链
墨雨晨曦8830 分钟前
2026/01/20 java总结
java·开发语言
代码游侠36 分钟前
嵌入式开发——ARM Cortex-A7内核和i.MX6处理器相关的底层头文件
arm开发·笔记·嵌入式硬件·学习·架构
look ahead to39 分钟前
关于PYQT qt designer的网格布局 单控件占多行的处理
开发语言·qt·pyqt
王德博客39 分钟前
【C++继承】笔试易错题目
开发语言·c++·继承
卖个几把萌42 分钟前
解决 Python 项目依赖冲突:使用 pip-tools 一键生成现代化的 requirements.txt
开发语言·python·pip
黎雁·泠崖1 小时前
Java字符串入门:API入门+String类核心
java·开发语言·python
MediaTea1 小时前
Python:MRO 解密 —— C3 线性化算法
java·开发语言