update toc, add changelog.md

pull/467/head
sunface 3 years ago
parent e0ca509d0b
commit a431dca5dd

@ -0,0 +1,4 @@
## 2022-02-24
- 进阶中的enum/整数类型转换、newtype章节被合并到**深入类型**目录中
- 将 newtype 中的 Sized/DST 内容拆分成单独的章节,并扩展了相应内容

@ -66,7 +66,10 @@
- [函数式编程: 闭包、迭代器](advance/functional-programing/intro.md)
- [闭包closure](advance/functional-programing/closure.md)
- [迭代器iterator](advance/functional-programing/iterator.md)
- [深入类型之newtype和Sized](advance/custom-type.md)
- [深入类型](advance/into-types/intro.md)
- [newtype 和 类型别名](advance/into-types/custom-type.md)
- [Sized、UnSized和DST](advance/into-types/sized.md)
- [枚举和整数](advance/into-types/enum-int.md)
- [智能指针](advance/smart-pointer/intro.md)
- [Box<T>堆对象分配](advance/smart-pointer/box.md)
- [Deref解引用](advance/smart-pointer/deref.md)
@ -86,8 +89,7 @@
- [实践应用多线程Web服务器 todo](advance/concurrency-with-threads/web-server.md)
- [全局变量](advance/global-variable.md)
- [错误处理](advance/errors.md)
- [进阶类型转换 doing](advance/converse/intro.md)
- [枚举和整数](advance/converse/enum-int.md)
- [Unsafe Rust](advance/unsafe/intro.md)
- [五种兵器](advance/unsafe/superpowers.md)
- [Macro宏编程](advance/macro.md)

@ -1,2 +0,0 @@
# 进阶类型转换
Rust 是强类型语言,同时也是强安全语言,这些特性导致了 Rust 的类型转换注定比一般语言要更困难,再加上 Rust 的繁多的类型和类型转换特征,因此大家很难对这块内容了如指掌,为此我们专门整了一个专题来讨论 Rust 中那些不太容易的类型转换, 容易的请看[这一章](../basic/converse.md).

@ -0,0 +1 @@
# newtype 和 类型别名

@ -0,0 +1,4 @@
# 深入类型
Rust 是强类型语言,同时也是强安全语言,这些特性导致了 Rust 的类型注定比一般语言要更深入也更困难。
本章将深入讲解一些进阶的 Rust 类型以及类型转换,希望大家喜欢。

@ -0,0 +1 @@
# Sized、UnSized和DST

@ -22,7 +22,7 @@ time = "0.1.12"
> npm 使用的就是 `semver` 版本号,从 JS 过来的同学应该非常熟悉。
#### `^`
#### `^` 指定版本
与之前的 `"0.1.12"` 不同, `^` 可以指定一个版本号范围,**然后会使用该范围内的最大版本号来引用对应的包**。
只要新的版本号没有修改最左边的非零数字,那该版本号就在允许的版本号范围中。例如 `"^0.1.12"` 最左边的非零数字是 `1`,因此,只要新的版本号是 `"0.1.z"` 就可以落在范围内,而`0.2.0` 显然就没有落在范围内,因此通过 `"^0.1.12"` 引入的依赖包是无法被升级到 `0.2.0` 版本的。
@ -43,7 +43,7 @@ time = "0.1.12"
以上是更多的例子,**事实上,这个规则跟 `SemVer` 还有所不同**,因为对于 `SemVer` 而言,`0.x.y` 的版本是没有其它版本与其兼容的,而对于 Rust只要版本号 `0.x.y` 满足 `z>=y``x>0` 的条件,那它就能更新到 `0.x.z` 版本。
#### `~`
#### `~` 指定版本
`~` 指定了最小化版本 :
```rust
~1.2.3 := >=1.2.3, <1.3.0
@ -51,7 +51,7 @@ time = "0.1.12"
~1 := >=1.0.0, <2.0.0
```
#### `*`
#### `*` 通配符
这种方式允许将 `*` 所在的位置替换成任何数字:
```rust
* := >=0.0.0

Loading…
Cancel
Save