S-JIS[2025-02-01] 変更履歴

Rust Displayトレイト

Ruststd::fmt::Displayのメモ。


概要

Displayトレイトは、ユーザーに見せる為の文字列を取得する為のトレイト

use std::fmt::Display;

Displayトレイトを実装すると、println!マクロ等で"{}"によって出力できるようになる。
また、自動的にToStringトレイトも実装され、to_stringメソッドが使えるようになる。


Debugトレイトの場合は#[derive(Debug)]属性によってデフォルトの実装が生成されるが、
Displayトレイトの場合は#[derive]による生成は出来ない。

Displayトレイトではユーザーに見せる為の文字列を生成する必要があるので、自動生成機能は提供されていないらしい。


Displayトレイトの実装例

Displayトレイトを実装する例。

struct MyStruct {
    value1: i32,
    value2: i32,
}

impl std::fmt::Display for MyStruct {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "MyStruct({}, {})", self.value1, self.value2)
    }
}

fn main() {
    let value = MyStruct {
        value1: 123,
        value2: 456,
    };

    println!("{}", value);
}

stdへ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま