0%

重构:改善既有代码的设计 学习笔记

重构是在不改变软件可观测行为的前提下,调整代码结构,提高软件的可理解性,降低变更成本。重构除了能够帮助我们更好的进行开发之外,没有任何意义。对于每个稍微大一点的工程项目或者有追求的程序员,都应该尽可能地去重构每一段代码。

阅读全文 »

Clap 库的使用

Clap 是一个用来解析 rust 命令行参数的库。稍微有编程语言基础的人应该会觉得这个解释非常清晰明了,一些类似于“clap 库易于使用、高效且功能齐全”等场面话不会再次出现,下面我们直接进入正题。

阅读全文 »

指针是指向一个变量在内存中的地址,在 Rust 中最常见的指针就是引用 & 了,没有其他开销。
智能指针:引用计数智能指针。该智能指针允许你同时拥有同一个数据的多个所有权,它会跟踪每一个所有者并进行计数,当所有的所有者都归还后,该智能指针及指向的数据将自动被清理释放。

阅读全文 »

闭包(closures)是可以保存在一个变量中或作为参数传递给其他函数的匿名函数,即可以捕获其所在环境的匿名函数。 可以在一个地方创建闭包,然后在不同的上下文中执行闭包运算。不同于函数,闭包允许捕获调用者作用域中的值。我们将展示闭包的这些功能如何复用代码和自定义行为。
函数式编程的特点有:将函数作为参数或者作为其他函数的返回值,以及将函数赋值给一个变量,这些都是函数式编程的常见特点

阅读全文 »

本章将介绍 Rust 在实际开发中的使用,并用官方文档上的项目(一个简单版本的 grep 命令)展开讲解,最后将利用之前所学,自己实现一个代码统计的 Rust 项目。

阅读全文 »

C/C++、Rust 等语言中,宏编程一直是书本上讲解很少但是在实际开发中却及其重要的内容。宏展开在编译期发生,并没有运行期的性能损耗。Rust 宏分为声明宏和过程宏。

【未完】

阅读全文 »

Rust入门教程(八):编写和运行测试

这一章主要介绍 Rust 的测试。在 Rust 中,一个测试实际上就是一个函数,用于验证非测试代码的功能是否和预期一致。

测试函数体通常执行下面三个操作,也称 3a 操作:

  1. 准备数据或状态(arrange);
  2. 运行被测试的代码(act);
  3. 断言结果(assert)。
阅读全文 »

Rust入门教程(七):生命周期

Rust 生命周期机制是与所有权机制同等重要的资源管理机制。生命周期,简而言之就是引用的有效作用域,之所以引入这个概念主要是应对复杂类型系统中资源管理的问题。引用是对待复杂类型时必不可少的机制,毕竟复杂类型的数据不能被处理器轻易地复制和计算,但引用往往导致极其复杂的资源管理问题。

阅读全文 »