References

C++๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Ÿฌ์ŠคํŠธ๋„ ์ฐธ์กฐํ˜•์„ ๊ฐ–์Šต๋‹ˆ๋‹ค:

Like C++, Rust has references:

fn main() {
    let mut x: i32 = 10;
    let ref_x: &mut i32 = &mut x;
    *ref_x = 20;
    println!("x: {x}");
    
}

C++๊ณผ์˜ ์ฐจ์ด์ :

  • Cํฌ์ธํ„ฐ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ref_x์— ํ• ๋‹นํ•  ๊ฒฝ์šฐ ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฌ์ŠคํŠธ๋Š” ํŠน์ •ํ•œ ๊ฒฝ์šฐ(๋ฉ”์„œ๋“œ ํ˜ธ์ถœ)์— ์ž๋™์œผ๋กœ ์ฐธ์กฐ ํ•ด์ œ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  • mut๋กœ ์„ ์–ธ๋œ ์ฐธ์กฐ๋Š” ์ˆ˜๋ช…์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Some differences from C++:

  • We must dereference ref_x when assigning to it, similar to C pointers,
  • Rust will auto-dereference in some cases, in particular when invoking methods (try count_ones).
  • References that are declared as mut can be bound to different values over their lifetime.

์—ญ์ฃผ

  • count_ones ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”