Exploración de múltiples límites en Rust

RustRustBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, el código demuestra el concepto de múltiples límites en Rust, donde un solo tipo puede tener múltiples límites aplicados utilizando el operador +.

Nota: Si el laboratorio no especifica un nombre de archivo, puede utilizar cualquier nombre de archivo que desee. Por ejemplo, puede utilizar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading") subgraph Lab Skills rust/variable_declarations -.-> lab-99350{{"Exploración de múltiples límites en Rust"}} rust/function_syntax -.-> lab-99350{{"Exploración de múltiples límites en Rust"}} rust/expressions_statements -.-> lab-99350{{"Exploración de múltiples límites en Rust"}} rust/operator_overloading -.-> lab-99350{{"Exploración de múltiples límites en Rust"}} end

Múltiples límites

Para un solo tipo, se pueden aplicar múltiples límites con un +. Al igual que lo normal, los diferentes tipos se separan con ,.

use std::fmt::{Debug, Display};

fn compare_prints<T: Debug + Display>(t: &T) {
    println!("Debug: `{:?}`", t);
    println!("Display: `{}`", t);
}

fn compare_types<T: Debug, U: Debug>(t: &T, u: &U) {
    println!("t: `{:?}`", t);
    println!("u: `{:?}`", u);
}

fn main() {
    let string = "words";
    let array = [1, 2, 3];
    let vec = vec![1, 2, 3];

    compare_prints(&string);
    //compare_prints(&array);
    // TODO ^ Intenta descomentar esto.

    compare_types(&array, &vec);
}

Resumen

¡Felicidades! Has completado el laboratorio de Múltiples Límites. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.