Skip to content

Conversation

Aurzex
Copy link

@Aurzex Aurzex commented Aug 1, 2025

优化了Rust基本类型章节的表述准确性

变更如下:

1. 数值类型

  • 新增了i128/u128类型说明(Rust已经在v1.26版本支持了该类型) wiki
  • 移除了不准确的"有理数、复数"描述(Rust标准库不包含这些类型,放入基本类型章节有些不妥?需要导入外部库)
  • 增加了浮点数精度标注:
    - 浮点数 (`f32`, `f64`)
    + 浮点数:`f32`(单精度), `f64`(双精度,默认)
  • 补充平台相关整数类型说明:

    isize 和 usize 的大小取决于目标平台的指针大小(32位平台为4字节,64位平台为8字节)

字符串类型

- 字符串:字符串字面量和字符串切片 `&str`
+ 字符串切片:`&str`
(字符串字面量本质就是&str类型)

字符类型

- 字符类型:表示单个 Unicode 字符,存储为 4 个字节
+ 字符类型:`char` 表示**单个** Unicode 字符(存储为4字节),如 `'A'`, `'中'`, `'😻'`

单元类型

- 单元类型:即 `()` ,其唯一的值也是 `()`
+ 单元类型:`()`,其唯一可能的值也是 `()`

备注: 单元类型和字符串类型询问了ai,因为我也是个初学者((,第一次发pr,有不周到的地方见谅

@Aurzex Aurzex changed the title fix: Optimization notes for the "Basic Types" chapter fix: Optimization notes for the "Base Type" chapter Aug 2, 2025
@Aurzex
Copy link
Author

Aurzex commented Aug 2, 2025

新的一次修改:

修复 let 语句错误示例及说明优化

变更说明

  • 修正了代码示例中的语法错误展示,将错误代码从let b = let a = 8;调整为错误示例let b = (let a = 8);;
- let b = let a = 8;
+ let b = (let a = 8);
  • 更新了错误提示的说明文字
  • 补充了let语句仅允许在if let和while let模式匹配中使用的说明

备注

参考链接

以下是ai生成:

旧版报错中提到的 let expressions in this position are experimental(#53667),源于 Rust 曾经探索过 “let 表达式” 特性(允许 let 在特定场景作为表达式使用),但该特性从未稳定化,最终被放弃。

@Aurzex
Copy link
Author

Aurzex commented Aug 2, 2025

优化字符类型描述准确性及单元类型说明补充

变更说明

  • 将不准确的“由于 Unicode 都是 4 个字节编码,因此字符类型也是占用 4 个字节”调整为精确表述,明确 char 类型与 Unicode 标量值及 UTF-32 编码单元的对应关系
  • 优化单元类型说明,增强概念区分度

代码变更

## 字符类型(char)
- 由于 `Unicode` 都是 4 个字节编码,因此字符类型也是占用 4 个字节:
+ `char`类型表示一个 `Unicode` 标量值(Unicode Scalar Value),它占用固定的 4 字节(32 位) 内存(与 UTF-32 编码单元一致):

## 单元类型(unit)
- 没错, `main` 函数就返回这个单元类型 `()`,你不能说 `main` 函数无返回值,因为没有返回值的函数在 Rust 中是有单独的定义的:`发散函数( diverging functions )`,顾名思义,无法收敛的函数。
+ 没错, `main` 函数就返回这个单元类型 `()`,因此 `main` 函数有返回值,而没有返回值的函数在 Rust 中是有单独的定义的:`发散函数( diverging functions )(-> !)`,顾名思义,无法收敛的函数。

备注

参考链接

背景说明(ai生成)

旧版中“Unicode 都是 4 个字节编码”的表述存在概念偏差,Unicode 标准支持多种编码方式(如 UTF-8、UTF-16、UTF-32),并非所有编码都是 4 字节。Rust 的 char 类型占用 4 字节是因其对应 Unicode 标量值,与 UTF-32 编码单元一致,此修正更准确反映了类型设计原理。此外,补充发散函数的 -> ! 语法标识,可帮助读者更清晰区分单元类型返回(main 函数)与无返回值的发散函数特性。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant