ראסט עם דוגמאות: הדפסות דיספלאי דוגמה עם רשימה

examples/rust-by-example-display-testcase-list/src/main.rs

#![allow(unused)]

use std::fmt; // Import the `fmt` module.

// Define a structure named `List` containing a `Vec`.
#[derive(Debug)]
struct List(Vec<i32>);

impl fmt::Display for List {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        // Extract the value using tuple indexing,
        // and create a reference to `vec`.
        let vec = &self.0;

        // join elements of vec
        let res = vec
            .iter()
            .map(|x| x.to_string())
            .collect::<Vec<String>>()
            .join("; ");
        write!(f, "[{}]", res)

        // write!(f, "[")?;

        // // Iterate over `v` in `vec` while enumerating the iteration
        // // count in `count`.
        // for (count, v) in vec.iter().enumerate() {
        //     // For every element except the first, add a comma.
        //     // Use the ? operator to return on errors.
        //     if count != 0 { write!(f, ", ")?; }
        //     write!(f, "{}", v)?;
        // }

        // // Close the opened bracket and return a fmt::Result value.
        // write!(f, "]")
    }
}

fn main() {
    let v = List(vec![1, 2, 3]);
    println!("debug: {:?}", v);
    println!("display: {}", v);
}

דפים קשורים

ראסט עם דוגמאות

Author

גאבור סבו (szabgab)

גאבור סבו, יוצר התוכן באתר הזה מלמד תכנות כבר 25 שנים. בתקופה האחרונה זה בעיקר הדרכות בראסט ובפייתון בחברות היי-טק.

גאבור גם מלמג קורס פייתון במכון וויצמן לסטודנטים למדעים מדויקים כגון ביולוגיה וכימיה לתואר שני ושלישי.

גאבור סבו