From 2ccb5136a539b86f43cefadc50414140d0662750 Mon Sep 17 00:00:00 2001 From: skymkmk Date: Fri, 13 Jun 2025 16:41:40 +0800 Subject: [PATCH] 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)。 #### 创建不安全代码的安全抽象