文章分类 -  代码世界

摘要:内核态(Kernel Mode) 和 用户态(User Mode) 是操作系统中的两种不同的运行模式。它们决定了程序在执行时的权限和能够访问的资源范围。下面是对内核态和用户态的详细说明: 1. 内核态(Kernel Mode) 权限:在内核态下,程序可以访问整个系统的硬件资源,包括CPU、内存、硬盘 阅读全文
posted @ 2025-02-19 12:15 代码世界faq 阅读(160) 评论(0) 推荐(0)
摘要:Rust 中的错误处理,主要可以分为两部分:错误类型(如 Result 和 Option)和 错误处理方式(如 match、unwrap、map_err 等方法)。 1. 错误类型 Rust 中有两种主要的类型来处理错误:Option 和 Result。 1.1 Option 类型 Option 类 阅读全文
posted @ 2025-02-10 10:19 代码世界faq 阅读(69) 评论(0) 推荐(0)
摘要:Rust 中的 Option<T> 类型学习 Option<T> 是 Rust 标准库中的一个枚举类型,表示一个值要么是 某个类型的值 (Some(T)),要么是 空 (None)。它用于处理可能不存在的值,而不是使用 null(Rust 没有 null)。 Option<T> 是 Rust 处理 阅读全文
posted @ 2025-01-31 22:03 代码世界faq 阅读(216) 评论(0) 推荐(0)
摘要:在 Rust 中,:: 是 路径分隔符,它的作用是用于访问某个模块、类型、方法或关联函数。它的使用场景包括以下几种情况: 1. 访问类型或函数的关联项 :: 用来访问某个类型(例如结构体、枚举、trait)的关联函数或者常量。例如,Vec::new() 访问 Vec 类型的 new 关联函数,i32 阅读全文
posted @ 2025-01-30 14:49 代码世界faq 阅读(105) 评论(0) 推荐(0)
摘要:HashMap 是 Rust 标准库中提供的一个哈希表实现,属于 std::collections 模块。它以键值对的形式存储数据,其中键是唯一的,每个键对应一个值。它通常用于存储不重复的值,并能够根据键快速访问值。 HashMap 提供了许多方法来方便地操作数据,下面是对 HashMap 的详细学 阅读全文
posted @ 2025-01-25 14:26 代码世界faq 阅读(227) 评论(0) 推荐(0)
摘要:Rust 中的模块(Module) 模块(Module) 是 Rust 中用来组织代码的主要工具,它允许你将代码划分为多个逻辑单元,从而提高可读性和可维护性。模块可以包含函数、结构体、枚举、常量、trait 等,也可以嵌套子模块。 模块的定义与使用 1. 模块的定义 可以使用 mod 关键字定义一个 阅读全文
posted @ 2025-01-24 11:48 代码世界faq 阅读(168) 评论(0) 推荐(0)
摘要:String 类型的概述 在 Rust 中,String 是一种可变的、堆分配的、动态大小的字符串类型。与 &str(字符串切片)不同,String 允许你对字符串进行修改,并且可以动态地增长或缩小。 String 的特性 堆分配: String 类型将数据存储在堆上,意味着它可以动态地分配和释放内 阅读全文
posted @ 2025-01-21 18:00 代码世界faq 阅读(168) 评论(0) 推荐(0)
摘要:在 Rust 中,enum 是一种非常强大的类型,它允许定义一组具有关联性的可能值。与许多编程语言中的枚举不同,Rust 的枚举不仅可以是简单的枚举值,还可以包含数据,甚至可以和结构体一样复杂。 以下是对 enum 的全面学习和总结: 1. 基本枚举 枚举的基本形式是定义一组可能的值: enum D 阅读全文
posted @ 2025-01-21 15:30 代码世界faq 阅读(109) 评论(0) 推荐(0)
摘要:在 Rust 中,结构体(struct)是定义数据类型和管理复杂数据的核心工具,类似于其他语言中的类,但它不支持内置继承。Rust 提供了三种基本的结构体形式:常规结构体(regular struct)、元组结构体(tuple struct)和单元结构体(unit struct)。下面详细讲解: 1 阅读全文
posted @ 2025-01-20 21:50 代码世界faq 阅读(104) 评论(0) 推荐(0)
摘要:可变性、所有权和借用 在 Rust 中,可变性(mutability)、所有权(ownership)和借用(borrowing)是三个核心概念,它们在一起决定了如何在内存中管理数据、避免数据竞争以及确保程序的安全性。这些概念互相联系,共同维护了 Rust 的内存安全性。 让我们逐一展开这些概念,并了 阅读全文
posted @ 2025-01-17 18:10 代码世界faq 阅读(171) 评论(0) 推荐(0)
摘要:Rust 中的 move semantics(移动语义) 是其所有权系统的核心特性之一。它决定了数据的所有权如何在程序中转移以及如何在程序执行过程中确保内存安全。 1. 基本概念:所有权(Ownership) Rust 的所有权系统要求每个值都有一个所有者,并且该值在同一时间只能有一个所有者。这就引 阅读全文
posted @ 2025-01-17 11:54 代码世界faq 阅读(154) 评论(0) 推荐(0)
摘要:iter() 是 Rust 中的一个方法,它可以用于 可迭代的集合,返回一个 不可变的迭代器。这个方法使得你可以遍历集合中的元素。通常,iter() 适用于以下几种类型: 1. 数组(Array) 数组是固定大小的集合,iter() 可以用来遍历数组中的元素。 示例: let arr = [1, 2 阅读全文
posted @ 2025-01-16 18:09 代码世界faq 阅读(100) 评论(0) 推荐(0)
摘要:Vec 基本知识 定义 Vec 是一个存储堆分配的数据类型,可以动态改变大小。你可以将元素推送到 Vec 中,或者从其中删除元素。 动态大小 不像数组([T; N])那样大小固定,Vec 的大小在运行时是可变的。你可以向 Vec 添加元素,也可以删除元素,甚至将它的容量增加或减少。 如何使用 Vec 阅读全文
posted @ 2025-01-16 17:52 代码世界faq 阅读(338) 评论(0) 推荐(0)
摘要:Rust 切片字面量(Slice Literals)详解 切片字面量是 Rust 中用于表示固定长度数组的一部分的引用。切片是一种轻量级的、对底层数组数据的引用,它的设计目的是操作集合中的部分数据,而不复制数据本身。 1. 什么是切片字面量? 切片字面量是 &[T] 类型的引用,用来表示对一个数组或 阅读全文
posted @ 2025-01-16 10:10 代码世界faq 阅读(57) 评论(0) 推荐(0)
摘要:Booleans (bool) let is_morning = true; if is_morning { println!("Good morning!"); } Characters (char) fn main() { let c1 = 'a'; // 字母 let c2 = '中'; // 阅读全文
posted @ 2025-01-15 16:52 代码世界faq 阅读(86) 评论(0) 推荐(0)
摘要:return-返回的使用 这里只讲我遇到的一些function使用和其他语言的区别 fn is_even(num: i64) -> bool { num % 2 == 0 } fn sale_price(price: i64) -> i64 { if is_even(price) { price - 阅读全文
posted @ 2025-01-13 16:16 代码世界faq 阅读(68) 评论(0) 推荐(0)
摘要:声明变量let的使用 let 关键字用于声明变量。它是语言的核心部分,因为 Rust 的变量是默认不可变的,let 用于引入变量并赋予它初始值。 不可变量 let variable_name = value; 可变变量 要想修改,在加关键字mut let mut x = 5; x = x + 1; 阅读全文
posted @ 2025-01-08 16:06 代码世界faq 阅读(65) 评论(0) 推荐(0)
摘要:Cargo.toml 是Rust项目管理中的核心文件,包含了项目的元数据、依赖项、构建配置等关键信息 文档地址:https://doc.rust-lang.org/cargo/reference/manifest.html 每个toml文件均由以下部分组成: -cargo-features— 不稳定 阅读全文
posted @ 2024-12-23 21:03 代码世界faq 阅读(245) 评论(0) 推荐(0)
摘要:要将构建后的 Rust 程序移植并运行在其他机器上 1. 构建静态二进制文件 首先,默认情况下,Rust 构建的程序会依赖一些共享库,这可能会导致在不同环境中的兼容性问题。为了将程序移植到其他机器上,您可以选择静态编译。静态编译会将所有依赖的库链接到最终的可执行文件中,这样即使目标机器没有这些库,也 阅读全文
posted @ 2024-12-23 17:12 代码世界faq 阅读(154) 评论(0) 推荐(0)
摘要:cago命令参数 cargo --list Installed Commands: add Add dependencies to a Cargo.toml manifest file b alias: build bench Execute all benchmarks of a local pa 阅读全文
posted @ 2024-12-23 15:30 代码世界faq 阅读(808) 评论(0) 推荐(0)