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


Rust slice.as_chunks_unchecked用法及代码示例


本文简要介绍rust语言中 slice.as_chunks_unchecked 的用法。

用法

pub unsafe fn as_chunks_unchecked<const N: usize>(&self) -> &[[T; N]]

假设没有余数,将切片拆分为 N 元素数组的切片。

安全性

这只能在以下情况下调用

  • 切片完全拆分为 N 元素块(又名 self.len() % N == 0 )。
  • N != 0

例子

#![feature(slice_as_chunks)]
let slice: &[char] = &['l', 'o', 'r', 'e', 'm', '!'];
let chunks: &[[char; 1]] =
    // SAFETY: 1-element chunks never have remainder
    unsafe { slice.as_chunks_unchecked() };
assert_eq!(chunks, &[['l'], ['o'], ['r'], ['e'], ['m'], ['!']]);
let chunks: &[[char; 3]] =
    // SAFETY: The slice length (6) is a multiple of 3
    unsafe { slice.as_chunks_unchecked() };
assert_eq!(chunks, &[['l', 'o', 'r'], ['e', 'm', '!']]);

// These would be unsound:
// let chunks: &[[_; 5]] = slice.as_chunks_unchecked() // The slice length is not a multiple of 5
// let chunks: &[[_; 0]] = slice.as_chunks_unchecked() // Zero-length chunks are never allowed

相关用法


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