Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ограничения трейтов для обобщённых типов

// 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