형식을 지정하는 출력
러스트에서 출력 관련 기능은 std::fmt
에 정의된 몇개의 macro
로 처리합니다.
format!
: 형식 지정 문자열을String
에 출력합니다.print!
:format!
과 동일하지만, 출력을 콘솔 (io::stdout) 에 합니다.println!
:print!
과 동일하지만, 개행 문자를 덧붙여줍니다.eprint!
:format!
과 동일하지만, 표준 오류 스트림 (io::stderr) 에 출력합니다.eprintln!
:eprint!
과 동일하지만, 개행 문자를 덧붙여줍니다.
이들은 모두 동일한 형식 지정자를 사용합니다. 러스트는 컴파일 시점에 형식 지정이 올바른지 여부도 검사합니다.
std::fmt
에는 문자열 출력에 관련된 많은 트레잇(traits)
이 있습니다. 다음은 두개의 중요한 트레잇입니다.
fmt::Debug
:{:?}
에 사용됩니다. 디버깅에 사용합니다.fmt::Display
:{}
를 사용됩니다. 보기 편하게 출력 형식을 지정하는데 사용합니다.
위의 예제에서는 표준 라이브러리가 지원하는 자료형들을 출력했기 때문에 fmt::Display
를 사용했습니다.
사용자 정의 자료형을 위해서는 추가 작업이 필요합니다.
만약 fmt::Display
트레잇을 구현해주면 자동으로 ToString
트레잇이 구현되고,
해당 자료형을 String
으로 변환(convert)
할 수 있게됩니다.
Activities
- 위 코드에서 두 개의 이슈(FIXME 라고 된 부분들)를 수정하고 오류없이 실행되게 해보세요.
println!
매크로의 소수점 표시 기능을 이용해서원주율의 근사치는 3.142이다.
를 출력해보세요. 위한 파이값은let pi = 3.141592
라고 정의해주세요. (힌트:std::fmt
문서에서 소수점 표시(Precision) 항목을 참고하세요.)