์ฌ๋ผ์ด์ค
์ฌ๋ผ์ด์ค๋ ํฐ ์ปฌ๋์ ์ ์ผ๋ถ(ํน์ ์ ์ฒด)๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ทฐ(view)์ ๋๋ค:
fn main() { let mut a: [i32; 6] = [10, 20, 30, 40, 50, 60]; println!("a: {a:?}"); let s: &[i32] = &a[2..4]; println!("s: {s:?}"); }
- ์ฌ๋ผ์ด์ค๋ ๋ค๋ฅธ(์ฌ๋ผ์ด์ค ๋) ํ์ ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ โ๋น๋ คโ์ต๋๋ค.
- ์ง๋ฌธ:
s
๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ ์a[3]
์ ์์ ํ๋ฉด ๋ฌด์จ ์ผ์ด ์์ด๋ ๊น์?
-
์ฌ๋ผ์ด์ค๋ ์ฐ์
a
๋ฅผ ๋น๋ฆฐ๋ค์, ์์๊ณผ ๋ ์ธ๋ฑ์ค๋ฅผ ๋ธ๋ํท([]
)์์ ์ง์ ํด์ ๋ง๋ญ๋๋ค. -
์ฌ๋ผ์ด์ค๊ฐ ์ธ๋ฑ์ค 0๋ถํฐ ์์ํ๋ค๋ฉด ์์ ์ธ๋ฑ์ค๋ ์๋ต ๊ฐ๋ฅํฉ๋๋ค. ์ฆ
&a[0..a.len()]
์&a[..a.len()]
๋ ๋์ผํฉ๋๋ค. -
๋ง์ง๋ง ์ธ๋ฑ์ค๋ ์๋ต ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋์
&a[2..a.len()]
์&a[2..]
๋ ๋์ผํฉ๋๋ค. -
๋ฐ๋ผ์ ์ ์ฒด ๋ฐฐ์ด์ ๋ํ ์ฌ๋ผ์ด์ค๋
&a[..]
๊ฐ ๋ฉ๋๋ค. -
s
๋i32
๋ค๋ก ์ด๋ฃจ์ด์ง ์ฌ๋ผ์ด์ค์ ๋ํ ์ฐธ์กฐ์ ๋๋ค.s
์ ํ์ (&[i32]
)์ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ๋น ์ ธ์์์ ์ฃผ๋ชฉํ์๊ธฐ ๋ฐ๋๋๋ค. ์ฆ, ์ฌ๋ผ์ด์ค๋ฅผ ์ด์ฉํ๋ฉด ๋ค์ํ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค. -
์ฌ๋ผ์ด์ค๋ ํญ์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ โ๋น๋ คโ ์ต๋๋ค. ์ด ์์์์ ๊ฐ์ฒด
a
๋ ์ฌ๋ผ์ด์คs
๋ณด๋ค ๋ ์ค๋ ์ด์ ์์ด์ผ๋ง ํฉ๋๋ค. -
a[3]
์ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋๋ ์ง๋ฌธ์ ์ข์ ์ง๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ํ ๋ต์a
์s
๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์๋ ์์ง๋ง ์์ ํ ์๋ ์์ผ๋ฉฐ, ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ํด์๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ฌ๋ผ์ด์ค๊ฐ ์ฌ์ฉ๋์ง ์์ ๋, ์ฆ ์ฌ๋ผ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ ์ด๋, ํน์println
์ดํ์๋a[3]
์ ๋ฐ๊ฟ ์ ์์ต๋๋ค. ์ ๊ทธ๋ฐ์ง์ ๋ํ ์ข๋ ๊ตฌ์ฒด์ ์ธ ๋ต์ ๋น๋ฆผ ๊ฒ์ฌ ๋ถ๋ถ์์ ์์ธํ ์ค๋ช ํฉ๋๋ค.