[Rust] 디폴트값: Default 트레잇
러스트는 default라는 특수한 트레잇을 통해 디폴트값의 지정을 제어할 수 있다.
이거다.
https://doc.rust-lang.org/std/default/index.html
일단 대충 써보자.
문자열 등의 기본 타입은 디폴트가 구현되어있어서, 그냥 Default 트레잇의 메서드 default를 사용하면 미리 지정된 디폴트값을 삽입할 수 있다.


문자열의 경우에는 빈 문자열이 지정되어있다.
사용자 타입을 구현할 경우에도 derive를 이용하면 간편하게 디폴트값을 적용할 수 있다.



커스텀을 하고싶다면 직접 구현해도 되고



디폴트값 채우기
디폴트값 관련해서 괜찮은 축약 구문이 하나 존재한다.
일단 예시를 한번 보겠다.
이런 타입이 있고, 필드의 일부만 초기화하고 나머지는 디폴트로 초기화하고 싶다면 어떨까.

뭐 엄청나게 복잡한건 아니고 조금 귀찮은 작업이긴 하지만, 이에 대해서도 문법적 설탕이 제공된다.
이렇게 써두면


입력한 것 외의 나머지를 전부 디폴트로 채우라는 뜻이 된다.
근데 이게 그리 대단한건 아니고, 객체를 일단 디폴트로 생성해서 나머지 직접입력값을 넣어주는 방식이라서, 해당 바깥 객체에도 Default 구현이 필요하다.
뭐 그렇게 자주 쓰거나 유용한 기능은 아니다만... 알아두면 가끔은 코드를 좀더 심플하게 만들어줄 수는 있겠다.
참조
https://stackoverflow.com/questions/48389072/what-is-the-syntax-inside-a-struct-literal-in-rust