Function std::mem::uninitialized1.0.0[][src]

pub unsafe fn uninitialized<T>() -> T
👎 Deprecated since 1.39.0:

use mem::MaybeUninit instead

Expand description

假装产生 T 类型的值,而实际上什么也不做,从而绕过 Rust 的常规内存初始化检查。

不推荐使用此函数。 请改用 MaybeUninit<T>

弃用的原因是该函数基本上不能正确使用: 它具有与 MaybeUninit::uninit().assume_init() 相同的作用。

正如 assume_init 文档 所解释的那样,Rust 编译器 假设值已正确初始化。 因此,调用例如 mem::uninitialized::<bool>() 导致立即返回返回的 bool 的不确定行为,该 bool 不一定是 truefalse。 更糟糕的是,真正的未初始化内存 (如此处返回的内存) 的特殊之处在于,编译器知道它没有固定的值。 这使得在变量中具有未初始化的数据成为不确定的行为,即使该变量具有整数类型也是如此。 (请注意,关于未初始化整数的规则尚未最终确定,但是除非被确定,否则建议避免使用它们。)