オオカミ少年

// Copyright 2026 Google LLC
// SPDX-License-Identifier: Apache-2.0

pub unsafe fn copy(dest: &mut [u8], source: &[u8]) {
    for (dest, src) in dest.iter_mut().zip(source) {
        *dest = *src;
    }
}

fn main() {
    let a = &[114, 117, 115, 116];
    let b = &mut [82, 85, 83, 84];

    println!("{}", String::from_utf8_lossy(b));
    unsafe { copy(b, a) };
    println!("{}", String::from_utf8_lossy(b));
}

「いわゆるオオカミ少年関数を作ることもできます。

「これは unsafe としてマークされているものの、プログラマーが確認する必要のある安全性の事前条件を持たない関数です。