Function std::ptr::replace1.0.0[][src]

pub const unsafe fn replace<T>(dst: *mut T, src: T) -> T
Expand description

src 移至指定的 dst,返回先前的 dst 值。

这两个值都不会被丢弃。

该函数在语义上等效于 mem::replace,除了它在裸指针上而不是在引用上运行。 如果引用可用,则应首选 mem::replace

Safety

如果违反以下任一条件,则行为是未定义的:

  • dst 对于读写,必须为 有效 的。

  • dst 必须正确对齐。

  • dst 必须指向类型为 T 的正确初始化的值。

请注意,即使 T 的大小为 0,指针也必须非空且正确对齐。

Examples

use std::ptr;

let mut rust = vec!['b', 'u', 's', 't'];

// `mem::replace` 不需要 unsafe 块将具有相同的效果。
let b = unsafe {
    ptr::replace(&mut rust[0], 'r')
};

assert_eq!(b, 'b');
assert_eq!(rust, &['r', 'u', 's', 't']);
Run