本文简要介绍rust语言中 std::mem::MaybeUninit.array_assume_init
的用法。
用法
pub unsafe fn array_assume_init<const N: usize>( array: [MaybeUninit<T>; N]) -> [T; N]
从 MaybeUninit
容器数组中提取值。
安全性
由调用者来保证数组的所有元素都处于初始化状态。
例子
#![feature(maybe_uninit_uninit_array)]
#![feature(maybe_uninit_array_assume_init)]
use std::mem::MaybeUninit;
let mut array: [MaybeUninit<i32>; 3] = MaybeUninit::uninit_array();
array[0].write(0);
array[1].write(1);
array[2].write(2);
// SAFETY: Now safe as we initialised all elements
let array = unsafe {
MaybeUninit::array_assume_init(array)
};
assert_eq!(array, [0, 1, 2]);
相关用法
- Rust MaybeUninit.assume_init_mut用法及代码示例
- Rust MaybeUninit.as_ptr用法及代码示例
- Rust MaybeUninit.assume_init_ref用法及代码示例
- Rust MaybeUninit.assume_init用法及代码示例
- Rust MaybeUninit.as_mut_ptr用法及代码示例
- Rust MaybeUninit.assume_init_read用法及代码示例
- Rust MaybeUninit.write_slice用法及代码示例
- Rust MaybeUninit.zeroed用法及代码示例
- Rust MaybeUninit.write_slice_cloned用法及代码示例
- Rust MaybeUninit.write用法及代码示例
- Rust MaybeUninit.uninit用法及代码示例
- Rust MaybeUninit.new用法及代码示例
- Rust MaybeUninit.uninit_array用法及代码示例
- Rust MaybeUninit用法及代码示例
- Rust ManuallyDrop用法及代码示例
- Rust ManuallyDrop.into_inner用法及代码示例
- Rust ManuallyDrop.new用法及代码示例
- Rust Map用法及代码示例
- Rust Mutex.new用法及代码示例
- Rust MetadataExt.st_ctime_nsec用法及代码示例
- Rust MetadataExt.mtime_nsec用法及代码示例
- Rust MetadataExt.nlink用法及代码示例
- Rust MulAssign.mul_assign用法及代码示例
- Rust Mutex.get_mut用法及代码示例
- Rust MetadataExt.st_atime用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::mem::MaybeUninit.array_assume_init。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。