Function std::ptr::replace 1.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