Default
ํธ๋ ์
Default
ํธ๋ ์์ ์ด๋ค ํ์
์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
#[derive(Debug, Default)] struct Derived { x: u32, y: String, z: Implemented, } #[derive(Debug)] struct Implemented(String); impl Default for Implemented { fn default() -> Self { Self("John Smith".into()) } } fn main() { let default_struct = Derived::default(); println!("{default_struct:#?}"); let almost_default_struct = Derived { y: "Y is set!".into(), ..Derived::default() }; println!("{almost_default_struct:#?}"); let nothing: Option<Derived> = None; println!("{:#?}", nothing.unwrap_or_default()); }
- ํธ๋ ์์ ์ง์ ๊ตฌํํ๊ฑฐ๋
#[derive(Default)]
๋ฅผ ๋ถ์ฌ์ ์ปดํ์ผ๋ฌ์๊ฒ ๊ตฌํ์ ๋งก๊ธธ ์ ์์ต๋๋ค. - ์ปดํ์ผ๋ฌ๊ฐ ์ ๊ณตํ๋ ์๋ ๊ตฌํ์ ๊ฒฝ์ฐ ๋ชจ๋ ํ๋์ ๋ํด ๊ธฐ๋ณธ ๊ฐ์ ์ค์ ํ ์ ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ด๋ ๊ตฌ์กฐ์ฒด์ ๊ฐ ํ๋ ํ์
๋ค์ด ๋ชจ๋
Default
ํธ๋ ์์ ๊ตฌํํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
- ์ด๋ ๊ตฌ์กฐ์ฒด์ ๊ฐ ํ๋ ํ์
๋ค์ด ๋ชจ๋
- ๋ฌ์คํธ ํ์ค ํ์
๋ค์ ๋๋ถ๋ถ
Default
๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฉฐ, ๊ธฐ๋ณธ ๊ฐ์0
์ด๋""
์ฒ๋ผ ์์ ๊ฐ๋ฅํ ๊ฐ๋ค์ ๋๋ค. - ๊ตฌ์กฐ์ฒด์ ์ผ๋ถ๋ถ๋ง ๋ณต์ฌํ๊ณ ์ถ์ ๋
default
๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ๋ฌ์คํธ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋
Default
ํธ๋ ์์ ๊ตฌํํ ํ์ ์ ์ํ ํธ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ธฐ๋ ํฉ๋๋ค. - ์ด
..
๋ฌธ๋ฒ์ ๊ตฌ์กฐ์ฒด ์ ๋ฐ์ดํธ ๋ฌธ๋ฒ(struct update syntax)๋ผ๊ณ ํฉ๋๋ค