نوع داده چندگانه
همینطور Unionها مانند enumها هستند، اما شما باید خودتان active field را ردیابی کنید:
#[repr(C)] union MyUnion { i: u8, b: bool, } fn main() { let u = MyUnion { i: 42 }; println!("int: {}", unsafe { u.i }); println!("bool: {}", unsafe { u.b }); // Undefined behavior! }
This slide should take about 5 minutes.
به طور کلی Unionها در Rust به ندرت مورد نیاز هستند زیرا معمولاً میتوانید از enum استفاده کنید. آنها گاهی اوقات برای تعامل با APIهای کتابخانه C مورد نیاز هستند.
اگر فقط میخواهید بایتها را بهعنوان نوع متفاوتی تفسیر کنید، احتمالاً [std::mem::transmute
](https://doc.rust-lang.org/stable/std/mem/fn.transmute.html را میخواهید ) یا یک safe wrapper مانند جعبه [zerocopy
(https://crates.io/crates/zerocopy).