[Rust] ๋ชจ๋
๋ชจ๋์ c++/c#์์์ ๋ค์์คํ์ด์ค์ ์ ์ฌํ ๊ฐ๋ ์ด๋ค.
ํ์ง๋ง ํ๊ฐ์ง ์ค์ํ ์์๊ฐ ํ๋ ๋ ์ถ๊ฐ๋์๋ค. ๋ฐ๋ก '์ ๊ทผ์ ์ด' ์์ค์ด๋ค.
๋ฌ์คํธ์ ๊ตฌ์กฐ์ฒด ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณต๊ฐ๊ฐ ๋์ด์์ด์ ์๋ฌด๋ ์ ๊ทผ์ ํ ์๊ฐ ์๋ค. ์ด๋ ๊ตฌ์กฐ์ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ด๋ํ ์๊ฐ ์๊ณ ... C๊ฐ ๊ฐ๊ณ ์๋ ์ฌ๊ฐํ ๋ฌธ์ ์ค ํ๋๋ค.
๊ทธ๋์ ๋ฌ์คํธ๋ ๋ชจ๋-์ด๋ฆ๊ณต๊ฐ ๋จ์๋ก ์ ๊ทผ์ ์ด๋ฅผ ๊ฑธ์ด๋ฒ๋ฆฐ๋ค.
์ผ๋จ ๋ชจ๋์ ์ฌ์ฉ๋ฐฉ๋ฒ๋ถํฐ ๋ณด์.
์... ๋ญ ๋๋ถ๋ถ์ย ๊ทธ๋ฅ ๋ค์์คํ์ด์ค๋ ๋ค๋ฅธ ๊ฒ ์์ด๋ณด์ธ๋ค.
ํ์ง๋ง ์ ๊ธฐ func์ pub๋ฅผ ์ฃผ๋ชฉํด์ผ ํ๋ค. pub๋ ํด๋น ๋ชจ๋ ์ธ๋ถ์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋ช
์ํด์ฃผ๋ ๊ฒ์ด๋ค.
ํจ์๋ ๋ฉ์๋, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐ, ๋ชจ๋ ์์๋ ๋ถ์ ์๊ฐ ์๋ค. ๋ชจ๋๋ ๋ค๋ฅธ ๋ชจ๋ ์์ ๋ค์ด๊ฐ ์ ์์ผ๋๊น...
์ด์จ๋ ์ ๊ธฐ์ pub์ ๋นผ๋ฉด ์๋ฌ๊ฐ ๋๋ค.
์ด๋ ๊ฒ.
๊ทธ๋ฆฌ๊ณ ํ๋ฒ์ ์ฌ๋ฌ๊ฐ์ use๋ฅผ ๋ช ์ํ ์ ์๋ค.
๋ชจ๋ ๊น์ด๊ฐ ๋๋ฌด ๊น์ด์ ๋ถํธํ๋ฉด ๋ณ๋ช
์ ์ง์ ํด์ค ์๋ ์๋ค.
use ๊ธฐ์กด๋ชจ๋ ๊ฒฝ๋ก as ๋ณ๋ช
;
๋ชจ๋์ด ์ค์ฒฉ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ชจ๋์ ๋๋ช ์ ํจ์๋ ๋ณ์๊ฐ ์กด์ฌํ ์๋ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ self๋ super๋ก ๋ช ์๋ฅผ ํด์ค ์๊ฐ ์๋ค.
๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์์คํ์ผ๋ค์ ์ฐ๊ฒฐํ ๋๋ ๋ชจ๋ ๊ฐ๋ ์ด ์ฌ์ฉ๋๋ค.
๋ค๋ฅธ ์์คํ์ผ์ ๋ด์ฉ์ ๊ฐ๊ณ ์์ ์ฐ๋ ค๋ฉด ์ผ๋จ mod ์์คํ์ผ์ด๋ฆ (ํ์ฅ์ ์ ์ธ)๋ก ๋ชจ๋์ ํํ๋ก ๋๊ณ ๋ค์ด์์ผ ํ๋ค.
๊ทธ๋ฌ๊ณ ๋ ๋ค์๋ ๊ทธ๋ฅ ๋ชจ๋์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๊น์ง ํ๋ ๊ฒ์ ์ข
ํฉํด์ ์ ๋ณด์๋์ด ํฌํจ๋ ๋ํผ ํด๋์ค๋ฅผ ๋ง๋ค์ด๋ณผ ์๊ฐ ์๊ฒ ๋ค.
๊ตฌ์กฐ์ฒด์ ์์์๋ง private๊ฐ ๊ฑธ๋ ค์๋ค.
๋ ์๋? ๋.