Rust格式化輸出


打印操作由 https://doc.rust-lang.org/std/fmt/ 里面所定義的一系列宏來處理,包括:
format!:將格式化文本寫到字符串(String)。(譯注:字符串是返 回值不是參數。)
print!:與 format! 類似,但將文本輸出到控制台(io::stdout)。
println!: 與 print! 類似,但輸出結果追加一個換行符。
eprint!:與 format! 類似,但將文本輸出到標准錯誤(io::stderr)。
eprintln!:與 eprint! 類似,但輸出結果追加一個換行符。

fn main() {
    // 通常情況下,`{}` 會被任意變量內容所替換。
    // 變量內容會轉化成字符串。
    let pi = 3.141592;
    println!("{} days", 31);

    // 不加后綴的話,31 就自動成為 i32 類型。
    // 你可以添加后綴來改變 31 的類型。

    // 用變量替換字符串有多種寫法。
    // 比如可以使用位置參數。
    println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob");

    // 可以使用賦值語句。
    println!("{subject} {verb} {object}",
             object="the lazy dog",
             subject="the quick brown fox",
             verb="jumps over");

    // 可以在 `:` 后面指定特殊的格式。
    println!("{} of {:b} people know binary, the other half don't", 1, 2);

    // 你可以按指定寬度來右對齊文本。
    // 下面語句輸出 "     1",5 個空格后面連着 1。
    println!("{number:>width$}", number=1, width=6);

    // 你可以在數字左邊補 0。下面語句輸出 "000001"。
    println!("{number:>0width$}", number=1, width=6);

    // println! 會檢查使用到的參數數量是否正確。
    println!("My name is {0}, {1} {0}", "Bond","James");
    // 改正 ^ 補上漏掉的參數:"James"
    let s=format!("Pi is roughly {:.*}",4,pi);
    assert_eq!("3.1416", s);

    // 創建一個包含單個 `i32` 的結構體(structure)。命名為 `Structure`。
    // #[allow(dead_code)]
    // struct Structure(i32);

    // 但是像結構體這樣的自定義類型需要更復雜的方式來處理。
    // 下面語句無法運行。
    //println!("This struct `{}` won't print...", Structure(3));
    // 改正 ^ 注釋掉此行。
}

習慣寫python的小伙兒伴注意了:
(1)需要注意的是Rust的每行代碼的結尾要用;表示結束。
(2)定義一個變量的使用是let。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM