From 2ccb5136a539b86f43cefadc50414140d0662750 Mon Sep 17 00:00:00 2001 From: skymkmk Date: Fri, 13 Jun 2025 16:41:40 +0800 Subject: [PATCH 1/3] docs(ch20-01): clarify the lint of unsafe fn --- src/ch20-01-unsafe-rust.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ch20-01-unsafe-rust.md b/src/ch20-01-unsafe-rust.md index f5eed27..097f80e 100644 --- a/src/ch20-01-unsafe-rust.md +++ b/src/ch20-01-unsafe-rust.md @@ -94,9 +94,9 @@ 通过 `unsafe` 块,我们向 Rust 断言我们已经阅读过函数的文档,理解如何正确使用它,并核实我们履行了该函数的契约。 -在不安全函数的函数体内部执行不安全操作时,同样需要使用 `unsafe` 块,就像在普通函数中一样,如果忘记了编译器会发出警告。这有助于将 `unsafe` 块保持得尽可能小,因为 `unsafe` 操作并不一定需要覆盖整个函数体。 +在不安全函数的函数体内部执行不安全操作时,同样需要使用 `unsafe` 块,就像在普通函数中一样,如果忘记了编译器会发出警告(warning)。这有助于将 `unsafe` 块保持得尽可能小,因为 `unsafe` 操作并不一定需要覆盖整个函数体。 -不安全函数体也是有效的 `unsafe` 块,所以在不安全函数中进行另一个不安全操作时无需新增额外的 `unsafe` 块。 +> 译注:不安全函数体也是有效的 `unsafe` 块,所以在不安全函数中进行另一个不安全操作时可以不新增额外的 `unsafe` 块,但从 2024 edition 开始,`#[warn(unsafe_op_in_unsafe_fn)]` 是默认开启的,所以此时会产生警告(warning)。参考 [RFC 2585](https://rust-lang.github.io/rfcs/2585-unsafe-block-in-unsafe-fn.html),出于尽量缩小 `unsafe` 块的动机,不再建议直接在不安全函数体中直接进行不安全操作,因为未来可能将这种行为视为错误(error)。 #### 创建不安全代码的安全抽象 From 0a4cc3a5c910f049c155429815eb1a4661c9b5b5 Mon Sep 17 00:00:00 2001 From: skymkmk Date: Fri, 13 Jun 2025 16:54:35 +0800 Subject: [PATCH 2/3] docs(ch20-01): fix the wrong width of brackets usage --- src/ch20-01-unsafe-rust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch20-01-unsafe-rust.md b/src/ch20-01-unsafe-rust.md index 097f80e..5b2cbda 100644 --- a/src/ch20-01-unsafe-rust.md +++ b/src/ch20-01-unsafe-rust.md @@ -94,7 +94,7 @@ 通过 `unsafe` 块,我们向 Rust 断言我们已经阅读过函数的文档,理解如何正确使用它,并核实我们履行了该函数的契约。 -在不安全函数的函数体内部执行不安全操作时,同样需要使用 `unsafe` 块,就像在普通函数中一样,如果忘记了编译器会发出警告(warning)。这有助于将 `unsafe` 块保持得尽可能小,因为 `unsafe` 操作并不一定需要覆盖整个函数体。 +在不安全函数的函数体内部执行不安全操作时,同样需要使用 `unsafe` 块,就像在普通函数中一样,如果忘记了编译器会发出警告(warning)。这有助于将 `unsafe` 块保持得尽可能小,因为 `unsafe` 操作并不一定需要覆盖整个函数体。 > 译注:不安全函数体也是有效的 `unsafe` 块,所以在不安全函数中进行另一个不安全操作时可以不新增额外的 `unsafe` 块,但从 2024 edition 开始,`#[warn(unsafe_op_in_unsafe_fn)]` 是默认开启的,所以此时会产生警告(warning)。参考 [RFC 2585](https://rust-lang.github.io/rfcs/2585-unsafe-block-in-unsafe-fn.html),出于尽量缩小 `unsafe` 块的动机,不再建议直接在不安全函数体中直接进行不安全操作,因为未来可能将这种行为视为错误(error)。 From 2d4edfecfc414905a8f6e94f7e604783baa4f348 Mon Sep 17 00:00:00 2001 From: skymkmk Date: Fri, 13 Jun 2025 17:03:09 +0800 Subject: [PATCH 3/3] docs(ch20-01): fix typo --- src/ch20-01-unsafe-rust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch20-01-unsafe-rust.md b/src/ch20-01-unsafe-rust.md index 5b2cbda..c76b22d 100644 --- a/src/ch20-01-unsafe-rust.md +++ b/src/ch20-01-unsafe-rust.md @@ -96,7 +96,7 @@ 在不安全函数的函数体内部执行不安全操作时,同样需要使用 `unsafe` 块,就像在普通函数中一样,如果忘记了编译器会发出警告(warning)。这有助于将 `unsafe` 块保持得尽可能小,因为 `unsafe` 操作并不一定需要覆盖整个函数体。 -> 译注:不安全函数体也是有效的 `unsafe` 块,所以在不安全函数中进行另一个不安全操作时可以不新增额外的 `unsafe` 块,但从 2024 edition 开始,`#[warn(unsafe_op_in_unsafe_fn)]` 是默认开启的,所以此时会产生警告(warning)。参考 [RFC 2585](https://rust-lang.github.io/rfcs/2585-unsafe-block-in-unsafe-fn.html),出于尽量缩小 `unsafe` 块的动机,不再建议直接在不安全函数体中直接进行不安全操作,因为未来可能将这种行为视为错误(error)。 +> 译注:不安全函数体也是有效的 `unsafe` 块,所以在不安全函数中进行另一个不安全操作时可以不新增额外的 `unsafe` 块,但从 2024 edition 开始,`#[warn(unsafe_op_in_unsafe_fn)]` 是默认开启的,所以此时会产生警告(warning)。参考 [RFC 2585](https://rust-lang.github.io/rfcs/2585-unsafe-block-in-unsafe-fn.html),出于尽量缩小 `unsafe` 块的动机,不再建议在不安全函数体中直接进行不安全操作,因为未来可能将这种行为视为错误(error)。 #### 创建不安全代码的安全抽象