当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust MaybeUninit.uninit_array用法及代码示例


本文简要介绍rust语言中 std::mem::MaybeUninit.uninit_array 的用法。

用法

pub fn uninit_array<const LEN: usize>() -> [MaybeUninit<T>; LEN]

创建一个新的 MaybeUninit<T> 项目数组,处于未初始化状态。

注意:在未来的 Rust 版本中,当 Rust 允许 inline const expressions 时,此方法可能变得不必要。下面的示例可以使用 let mut buf = [const { MaybeUninit::<u8>::uninit() }; 32];

例子

#![feature(maybe_uninit_uninit_array, maybe_uninit_extra, maybe_uninit_slice)]

use std::mem::MaybeUninit;

extern "C" {
    fn read_into_buffer(ptr: *mut u8, max_len: usize) -> usize;
}

/// Returns a (possibly smaller) slice of data that was actually read
fn read(buf: &mut [MaybeUninit<u8>]) -> &[u8] {
    unsafe {
        let len = read_into_buffer(buf.as_mut_ptr() as *mut u8, buf.len());
        MaybeUninit::slice_assume_init_ref(&buf[..len])
    }
}

let mut buf: [MaybeUninit<u8>; 32] = MaybeUninit::uninit_array();
let data = read(&mut buf);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::mem::MaybeUninit.uninit_array。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。