當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust slice.as_chunks_unchecked_mut用法及代碼示例


本文簡要介紹rust語言中 slice.as_chunks_unchecked_mut 的用法。

用法

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

假設沒有餘數,將切片拆分為 N 元素數組的切片。

安全性

這隻能在以下情況下調用

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

例子

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

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

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 slice.as_chunks_unchecked_mut。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。