๊ตฌ์กฐ์ฒด
C/C++ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌ์คํธ๋ ์ปค์คํ ๊ตฌ์กฐ์ฒด๋ฅผ ์ง์ํฉ๋๋ค:
struct Person { name: String, age: u8, } fn main() { let mut peter = Person { name: String::from("Peter"), age: 27, }; println!("{} is {} years old", peter.name, peter.age); peter.age = 28; println!("{} is {} years old", peter.name, peter.age); let jackie = Person { name: String::from("Jackie"), ..peter }; println!("{} is {} years old", jackie.name, jackie.age); }
ํค ํฌ์ธํธ:
- ๊ตฌ์กฐ์ฒด๋ C/C++ ์ ์ ์ฌํฉ๋๋ค.
- C++ ์ ๊ฐ์ง๋ง C์๋ ๋ฌ๋ฆฌ ํ์ ์ ์ ์ํ๊ธฐ ์ํด โtypedefโ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
- C++ ์ ๋ฌ๋ฆฌ ๊ตฌ์กฐ์ฒด ๊ฐ ์์์ ์์ต๋๋ค.
- ๋ฉ์๋๋
impl
๋ธ๋ก์ ์ ์ ํฉ๋๋ค. ๋ค์ ์ฌ๋ผ์ด๋์์ ํ์ธ ํ ์ ์์ต๋๋ค. - ์ฌ๋๋ค์๊ฒ ๋ค๋ฅธ ์ข
๋ฅ์ ๊ตฌ์กฐ์ฒด๊ฐ ์์์ ์๊ฒ ํ๊ธฐ์ ์ข์ ์๊ฐ์ผ ๊ฒ์
๋๋ค.
- 0 ํฌ๊ธฐ ๊ตฌ์กฐ์ฒด(์:
struct Foo;
)๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ง๋ง ํน์ ํ์ ์ ํธ๋ ์์ ๊ตฌํํ ๋ ์ ์ฉํฉ๋๋ค. - ๋ค์ ์ฌ๋ผ์ด๋์์๋ ํ๋ ์ด๋ฆ์ด ๋ ์ค์ํ ๋ ์ฌ์ฉํ ์ ์๋ ํํ ๊ตฌ์กฐ์ฒด๋ฅผ ์๊ฐํฉ๋๋ค.
- 0 ํฌ๊ธฐ ๊ตฌ์กฐ์ฒด(์:
..peter
๋ฌธ๋ฒ์ ํ ๊ตฌ์กฐ์ฒด์์ ๋ค๋ฅธ ๊ตฌ์กฐ์ฒด๋ก ๋๋ถ๋ถ์ ๊ฐ์ ๋ณต์ฌํ๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ์ ํ๋ํ๋ ํ์ดํํ๋ ์๊ณ ๋ฅผ ๋์ด์ค๋๋ค. ๋ฐ๋์ ๋งจ ๋ง์ง๋ง์ ์์ผ ํฉ๋๋ค.