Skip to content
เข้าสู่ระบบ

Reference Primitives

References (&T และ &mut T)

fn main() {
let x = 42;
// Immutable reference
let ref_x: &i32 = &x;
println!("ref_x: {}", ref_x);
println!("*ref_x: {}", *ref_x); // Deref
// Multiple immutable references OK
let ref_a = &x;
let ref_b = &x;
println!("Both: {} {}", ref_a, ref_b);
// Mutable reference
let mut y = 100;
{
let ref_mut: &mut i32 = &mut y;
*ref_mut = 200;
println!("Through ref: {}", ref_mut);
} // ref_mut ends
println!("After: {}", y);
// Can't have mutable and immutable at same time
// let r1 = &y;
// let r2 = &mut y; // Error!
// Auto-deref in method calls
let s = String::from("hello");
let len = (&s).len(); // Auto-derefs to &str
println!("Length: {}", len);
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด