Rust에서 내가 정의한 데이터를 println!를 이용해 화면에 출력하기 위해서는 반드시 std::fmt::Display 트레이트를 구현해야 합니다. 먼저 다음과 같은 MyStruct라는 데이터를 정의합니다.
struct MyStruct { name: String, age: u16, } fn main() { let o = MyStruct { name: String::from("Ferris"), age: 17, }; println!("{}", o); }
위의 코드 12번은 에러를 발생하는데, 이는 MyStruct 타입의 o 객체를 콘솔에 출력하기 위해서는 MyStruct에 대해 std::fmt::Display 트레이트를 구현하지 않았기 때문입니다. 정상적으로 작동하기 위해서 위의 코드에 대해 다음처럼 보완하면 됩니다.
use std::fmt; struct MyStruct { ... } impl fmt::Display for MyStruct { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "name: {}, age: {}", self.name, self.age) } } fn main() { let ferris = ... println!("{}", ferris); }