// ref: https://users.rust-lang.org/t/ref-keyword-versus/18818/4 fn main() { let ref x = 1; let x2 = &1; let &y = x; let y2 = *x2; println!("{} {}", x, x2); println!("{} {}", y, y2); let s = "S".to_owned(); match &s { ss => println!("{}", ss), } match s { ref ss => println!("{}", ss), } }