ジェネリクスに対するトレイト境界

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

use std::fmt::Display;

fn print_with_length<T: Display>(item: T) {
    println!("Item: {}", item);
    println!("Length: {}", item.to_string().len());
}

fn main() {
    let number = 42;
    let text = "Hello, Rust!";

    print_with_length(number); // 整数でも動作します
    print_with_length(text); // 文字列でも動作します
}
  • トレイトは、関数やメソッドのジェネリック型パラメータに対する境界として使われることが最も一般的です。

    ジェネリック型パラメータにトレイト境界がないと、関数やメソッドを記述するために利用できる振る舞いにアクセスできません。

    トレイト境界を使うと、型がジェネリックなコードで機能するために必要な最小限の振る舞いを指定できます。

参照:

  • https://doc.rust-lang.org/reference/trait-bounds.html