![](https://img-blog.csdnimg.cn/773f47759a3043329538fc4ae8a9e313.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Rust
文章平均质量分 91
rust语言无 GC 且无需手动内存管理、性能高、工程性强、具有语言级安全性,学习其基础语法与实际运用。
zhugenmi
励志做一个资深码农
展开
-
函数式编程:Rust中的闭包与迭代器
闭包是一种匿名函数,它可以赋值给变量也可以作为参数传递给其它函数,不同于函数的是,它允许捕获调用者作用域中的值,例如:上面的代码展示了非常简单的闭包 ,它拥有一个入参 ,同时捕获了作用域中的 的值,因此调用 意味着将 2(参数 )跟 1()进行相加,最终返回它们的和:。可以看到 非常符合闭包的定义:可以赋值给变量,允许捕获调用者作用域中的值。Rust 闭包在形式上借鉴了 和 语言,与函数最大的不同就是它的参数是通过 的形式进行声明,如果是多个参数就 , 下面给出闭包的形式定义:如果只有一个返原创 2023-10-22 08:00:00 · 399 阅读 · 2 评论 -
【Rust基础④】Rust中的集合类型(Vector与HashMap)
原因在于:数组的大小是可变的,当旧数组的大小不够用时,Rust 会重新分配一块更大的内存空间,然后把旧数组拷贝过来。在某些情况下,类型是可以进行隐式强制转换的,虽然这些转换弱化了 Rust 的类型系统,但是它们的存在是为了让 Rust 在大多数场景可以工作,而不是报各种类型上的编译错误。所有的集合类型都是动态的,意味着它们没有固定的内存大小,因此它们底层的数据都存储在内存堆上,然后通过一个存储在栈中的引用类型来访问。,在这里我们程序捕获了错误,编译器告诉我们类型范围超出的转换是不被允许的,因为我们试图把。原创 2023-10-17 13:42:37 · 596 阅读 · 0 评论 -
【Rust基础③】方法method、泛型与特征
Rust 使用implx: f64,y: f64,// new是Circle的关联函数,因为它的第一个参数不是self,且new并不是关键字// 这种方法往往用于初始化当前结构体的实例Circle {x: x,y: y,// Circle的方法,&self表示借用当前的Circle结构体注:Rust 的对象定义和方法定义是分离的,这种数据和使用分离的方式,会给予使用者极高的灵活度。在开发过程中,往往只要使用x: i32,y: i32println!("{:?}",p);原创 2023-10-15 17:13:42 · 691 阅读 · 0 评论 -
【Rust基础②】流程控制、模式匹配
时我们往往使用集合的引用形式,除非你不想在后面的代码中继续使用该集合(比如我们这里使用了。类型的值(这种形式的函数在标准库内随处所见),在该函数的内部处理中,如果传入的是一个。值以及处理没有值的情况,为了演示这一点,下面一起来编写一个函数,它获取一个。有时会遇到只有一个模式的值需要被处理,其它值直接忽略的场景,如果用。的匹配必须穷尽所有情况,即穷尽匹配,Rust 编译器清晰地知道。表达式(穷尽性)的要求,写代码时必须在处理完这唯一的成员后加上。该形式清晰的说明了何为模式,何为模式匹配:将模式与。原创 2023-10-13 15:00:00 · 209 阅读 · 0 评论 -
Rust中的返回值与错误处理
Rust 中的错误主要分为两类:- **可恢复错误**,通常用于从系统全局角度来看可以接受的错误,例如处理用户的访问、操作等错误,这些错误只会影响某个用户自身的操作进程,而不会对系统的全局稳定性产生影响,`Result` 用于可恢复错误- **不可恢复错误**,刚好相反,该错误通常是全局性或者系统性的错误,例如数组越界访问,系统启动时发生了影响启动流程的错误等等,这些错误的影响往往对于系统来说是致命的,`panic!` 用于不可恢复错误。原创 2023-10-13 10:21:51 · 404 阅读 · 0 评论 -
【Rust】包和模块,文档注释,Rust格式化输出
模块是Rust的代码构成单元。Rust 出于安全的考虑,默认情况下,所有的类型都是私有化的,包括函数、方法、结构体、枚举、常量,就连模块本身也是私有化的。被引入到当前模块中时,它的可见性自动被设置为私有的,如果你希望允许其它外部代码引用我们的模块项。宏接受的是可变参数,第一个参数是一个字符串常量,它表示最终输出字符串的格式,包含其中形如。其实就是引用自身模块中的项,也就是说和我们之前章节的代码类似,都调用同一模块中的内容。目录下,每一个文件都是独立的二进制包,同时也会包含一个库包,该包只能存在一个。原创 2023-10-11 19:00:00 · 727 阅读 · 0 评论 -
【Rust】cargo的概念和使用方法
包管理器 cargo 提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为 Rust 项目的管理提供尽可能完整的手段,与 Rust 语言及其编译器 rustc 紧密结合。原创 2023-10-12 08:00:00 · 344 阅读 · 0 评论 -
【Rust基础①】基本类型、所有权与借用、复合类型
通过关键字struct定义一个清晰明确的结构体名称几个有名字的结构体字段该结构体名称是User,拥有 4 个字段,且每个字段都有对应的字段名及类型声明,例如username代表了用户名,是一个可变的String类型。原创 2023-10-11 10:25:08 · 747 阅读 · 0 评论