- 博客(17)
- 收藏
- 关注
原创 【Rust】错误处理机制
Rust 通过明确区分可恢复错误和不可恢复错误,提供了高效且安全的错误处理方式。Rust 要求开发者在编写代码时考虑错误的可能性,并采取相应的措施。Rust 通过其强大的类型系统和错误处理机制,帮助开发者在编译时捕获和处理这些错误,从而提高程序的健壮性。不可恢复错误是指那些无法通过程序逻辑恢复的错误,通常是由于程序中的 bug 导致的。在决定是尝试恢复错误还是停止执行时,开发者需要权衡错误的性质和程序的稳定性。在这个示例中,我们尝试访问一个超出数组边界的元素,这将导致程序立即停止执行,并打印出错误信息。
2025-01-12 19:11:37
1053
原创 【Rust】常见集合
集合的数据存储在堆上,因此其大小可以在程序运行时动态变化,而不必在编译时确定。虽然其性能可能不如其他哈希算法,但在安全性和性能之间的权衡是值得的。它在内存中是连续存储的,支持高效的随机访问和动态扩展。如果不存在,则将参数插入作为该键的新值,并返回新值的可变引用。:哈希映射是一种将特定键与值关联的数据结构,属于更通用的数据结构“映射”的一种实现。需要注意的是,向量必须是可变的(:向量的元素在内存中是连续存储的,可以根据需要动态扩展或缩减。:允许通过键快速访问对应的值,适合存储键值对数据。
2025-01-12 16:44:38
1252
原创 【Rust】枚举与模式匹配
枚举是一种数据类型,允许将一个值限制为一组可能的值。例如,可以定义一个表示形状的枚举,包含矩形(Rectangle)、圆形(Circle)和三角形(Triangle)。
2025-01-12 11:55:06
1077
原创 【Rust】结构体的方法语法
方法是定义在结构体、枚举或特征对象(trait object)中的函数,与特定类型实例相关联。方法的第一个参数总是self,表示方法被调用的实例。self可以是以下三种形式之一:&self:不可变借用,表示方法不会修改实例。&mut self:可变借用,表示方法可能会修改实例。self:获取所有权,表示方法会消耗实例。方法通过impl(实现)块定义,所有在该块内的内容都与指定的类型相关联。以下示例展示了如何在Rectangle结构体上定义area方法,计算矩形的面积。// 定义方法:计算面积。
2025-01-11 17:31:15
412
原创 【Rust】结构体示例与调试
本文通过一个计算矩形面积的程序,展示了如何从简单变量逐步重构到使用结构体,以提高代码的清晰度和可管理性。结构体是Rust中组织复杂数据的重要工具,能够显著提升代码的可读性和可维护性。函数中使用两个参数,缺乏参数之间的关联性,导致可读性差。结构体提供了更强的类型安全性,避免了参数顺序错误等问题。使用元组将宽度和高度组合为一个参数,增强数据的关联性。通过定义结构体为矩形增加语义,明确宽度和高度的关系。使用单独的变量定义矩形的宽度和高度,并通过。输出了计算过程中的中间值和最终的结构体值。
2025-01-11 16:48:11
1044
原创 【Rust】结构体定义域实例化
结构体是一种自定义数据类型,允许将多个相关的值组合在一起,形成一个有意义的集合。与元组不同,结构体的每个字段都有名称,这使得数据的访问和操作更加直观和清晰。结构体的灵活性体现在其命名字段上,开发者无需依赖字段的顺序来访问数据,从而减少了错误的可能性。使用struct关键字定义结构体,并为其命名。结构体名称应具有描述性,能够清晰地表达其代表的含义。在大括号内定义字段的名称和类型。字段的类型可以是Rust中的任意数据类型,包括基本类型、复合类型或其他结构体。// 定义结构体// 创建结构体实例。
2025-01-11 15:47:55
773
原创 【Rust】切片类型
切片是一种引用类型,允许我们引用集合(如字符串、数组等)中的连续元素序列,而不需要引用整个集合。切片本身并不拥有数据,因此它不会转移所有权。这种特性使得切片在处理大型数据集时非常高效,同时避免了不必要的内存复制。字符串切片是对字符串部分的引用,形式为,其中start和end是切片的起始和结束位置。切片内部存储了起始位置和长度信息,确保引用的有效性。
2025-01-11 14:35:09
758
原创 【Rust】引用与借用
Rust通过生命周期(lifetime)机制确保引用在使用期间始终指向有效的内存区域,避免了悬空引用的问题。Rust禁止在同一作用域内同时存在多个可变引用,以防止数据竞争(data races)。引用是一种指向数据的指针,但与裸指针不同,Rust的引用在编译时受到严格的规则约束,确保其始终指向有效的内存区域。借用是指在不获取数据所有权的情况下,通过引用访问或修改数据的过程。Rust强制要求在同一时间只能有一个可变引用,或者多个不可变引用,但两者不能共存。允许多个不可变引用同时存在,确保数据的一致性。
2025-01-10 22:16:40
986
原创 【Rust】所有权
所有权是一套规则,用于管理Rust程序如何使用内存。Rust通过所有权系统来管理内存,编译器会检查这些规则的遵守情况。违反任何规则将导致程序无法编译。所有权的特点是不会影响程序的运行速度。
2025-01-10 20:22:30
1216
原创 【Rust】控制流
控制流是编程语言的基本构建块,Rust使用。条件必须是布尔类型,如果条件不是布尔类型,将会报错。表达式允许根据条件分支执行不同的代码块。表达式和循环来控制代码的执行流程。
2025-01-10 16:12:26
752
原创 【Rust】函数
定义方式:通过fn关键字后接函数名和一对括号来定义函数。代码示例println!");println!调用函数:可以在main函数内调用其他已定义的函数,如。
2025-01-10 15:24:19
925
原创 【Rust】变量与可变性
不可变性:常量是始终不可变的,使用const关键字声明,且必须注释类型。作用域:常量可以在任何作用域中声明,包括全局作用域,适用于需要多个部分共享的值。
2025-01-10 13:34:47
421
原创 基于Boosting的四种机器算法的简单运用
本文汇总有Adaboost、GBDT、XGBoost、LightGBM四种算法的简单运用,而不是原理介绍。
2024-08-13 14:53:52
1752
基于Boosting的四种算法简单运用.ipynb
2024-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人