StarryLand

我的全部道路,就是从孤独走向人间


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

The Rust programming language 读书笔记——智能指针

发表于 2021-07-26 | 分类于 Program | | 阅读次数:
字数统计: 20k | 阅读时长 ≈ 0:20
指针(pointer)是一个通用概念,用来指代那些包含内存地址的变量。这些地址“指向”内存中的其他数据。Rust 中最常见的指针是引用,会借用它所指向的数据。除此之外,引用没有任何其他功能和额外的开销。智能指针(smart pointer)是一种数据结构,它的行为类似于指针但拥有额外的元数据和附加功 ...
阅读全文 »

The Rust programming language 读书笔记——枚举类型

发表于 2021-07-13 | 分类于 Program | | 阅读次数:
字数统计: 6.6k | 阅读时长 ≈ 0:07
枚举类型(enum),通常也被简称为枚举,它允许我们列举所有可能的值来定义一个类型。枚举搭配 match 表达式使用模式匹配,可以根据不同的枚举值来执行不同的代码。Rust 中的枚举更类似于 Haskell 这类函数式编程语言中的代数数据类型(ADT)。 定义枚举假设我们需要对 IP 地址进行处理。 ...
阅读全文 »

The Rust programming language 读书笔记——包(package)、单元包(crate)与模块系统

发表于 2021-07-09 | 分类于 Program | | 阅读次数:
字数统计: 8.3k | 阅读时长 ≈ 0:08
模块系统在编写较为复杂的项目时,合理地对代码进行组织与管理非常重要。只有按照不同的特性来组织或分割相关功能的代码,才能够清晰地找到实现指定功能的代码片段,确定哪些地方需要修改。 除了对功能进行分组,对实现的细节进行封装可以使开发者在更高的层次上复用代码:一旦实现了某个功能,其他代码就可以通过公共接口 ...
阅读全文 »

Haskell 基本语法(五)自定义 Types

发表于 2021-07-06 | 分类于 Program | | 阅读次数:
字数统计: 10k | 阅读时长 ≈ 0:10
ADT (Algebraic data types)类似 Bool、Int、Char 这些都是内置的数据类型,我们可以使用 data 关键字创建自己的类型。 标准库中的 Bool 类型实际上是这样定义的:1data Bool = False | True 其中 = 左边部分指定类型的名称,右边部分叫 ...
阅读全文 »

Haskell 基本语法(四)高阶函数

发表于 2021-06-30 | 分类于 Program | | 阅读次数:
字数统计: 7.1k | 阅读时长 ≈ 0:07
Haskell 中的函数可以作为另一个函数的参数或返回值,这类函数叫做高阶函数(high order functions)。想要通过定义是什么而不是定义一系列可以改变程序状态的步骤来完成计算过程,高阶函数是必不可少的。 Curried functionsHaskell 中的函数实际上都只接收一个参数 ...
阅读全文 »

Haskell 基本语法(三)递归

发表于 2021-06-29 | 分类于 Program | | 阅读次数:
字数统计: 2.7k | 阅读时长 ≈ 0:03
递归是一种定义函数的方式,在该方式下,函数的定义中调用了该函数本身。有点像俄罗斯套娃。 数学中的定义很多时候都会用到递归,比如 fibonacci 数列: F(0) = 1 F(1) = 1 F(n) = F(n - 1) + F(n - 2) 于是有 F(3) = F(2) + F(1) = ...
阅读全文 »

Haskell 基本语法(二)模式匹配

发表于 2021-06-25 | 分类于 Program | | 阅读次数:
字数统计: 6.2k | 阅读时长 ≈ 0:06
式匹配包含一系列特定的模式,用来判断数据是否符合规则,且能够通过这些模式把符合要求的数据解构出来。Haskell 中的模式匹配可以应用到任意的数据类型上(数字、字符、列表、元组等等)。 函数中的模式匹配可以在函数体的定义中,用不同的代码行分别指定不同的模式:123456789101112Prelud ...
阅读全文 »

The Rust programming language 读书笔记——模式匹配

发表于 2021-06-23 | 分类于 Rust | | 阅读次数:
字数统计: 7.5k | 阅读时长 ≈ 0:07
模式是 Rust 中一种用来匹配类型结构的特殊语法,将其与 match 表达式或其他工具配合使用可以更好地控制程序流程。模式被用来与某个特定的值进行匹配,若匹配成功,则可以继续使用这个值的某些部分;若匹配失败,模式对应的代码就被简单地略过。 模式的应用场景match 分支模式可以被应用在 match ...
阅读全文 »

The Rust programming language 读书笔记——泛型与 trait(特征)

发表于 2021-06-20 | 分类于 Rust | | 阅读次数:
字数统计: 12k | 阅读时长 ≈ 0:12
所有的编程语言都会致力于高效地处理重复概念,Rust 中的泛型(generics)就是这样一种工具。泛型是具体类型或其他属性的抽象替代。比如 Option<T>、Vec<T>、Hash<K, V> 等。 将代码提取为函数以减少重复工作下面的代码可以用来在数字列表中 ...
阅读全文 »

The Rust programming language 读书笔记——通用集合类型

发表于 2021-06-14 | 分类于 Rust | | 阅读次数:
字数统计: 7.5k | 阅读时长 ≈ 0:08
Rust 标准库包含了一系列被称为集合的数据结构。与内置的数组和元组不同,集合将自己持有的数据存储在堆上。这使得数据的大小不需要在编译时确定,且可以随着程序的运行按需扩大或缩小数据占用的空间。 Rust 中有 3 种最常用的集合类型: 动态数组(vector) 字符串(string) 哈希映射(h ...
阅读全文 »
1…567…23
星舞

星舞

Personal blogs about Linux / System Administration / Arduino / Programming / Python and etc. Just something I want to do and share.

224 日志
20 分类
360 标签
RSS
GitHub E-Mail Google Twitter FB Page Instagram
© 2023 星舞 | 1.5m | 25:47
由 Hexo 强力驱动
|
主题 — NexT.Muse v6.0.5