Rust教學
Rust下載和安裝
Rust簡介
Rust Hello World
Rust的特點
Rust註釋
Rust開發環境安裝
Rust文檔
Rust第一個程序
Rust格式化打印
Rust調試
Rust顯示
測試用例:列表
Rust格式化
Rust原語
Rust常量和運算符
Rust元組
Rust數組和切片
Rust自定義類型
Rust結構
Rust可視性
Rust枚舉
Rust常量
Rust變量綁定
Rust變量綁定-可變性
Rust變量綁定-範圍和陰影
Rust變量綁定-聲明
Rust類型轉換
Rust類型轉換 - 字面量
Rust類型轉換-推導
Rust類型轉換 - 別名
Rust表達式
Rust if/else語句
Rust循環
Rust嵌套和標籤
Rust while循環
Rust for和範圍
Rust匹配/match
Rust匹配析構元組
Rust解構枚舉
Rust指針和引用
Rust解構結構
Rust Guards
Rust綁定
Rust if let
Rust while let
Rust函數
Rust方法
Rust閉包
Rust捕捉
Rust作爲輸入參數
Rust匿名類型
Rust輸入函數
Rust作爲輸出參數
Rust格式化打印
1.2 Rust格式化打印
打印是通過一系列在標準定義std::fmt其中一些宏處理包括:
-
format!
: 寫格式化的文本到字符串 -
print!
: 類似於format!
但文本打印到控制檯上。 -
println!
: 類似於print!
但追加一個換行符。
以相同的方式解析全部文本。加號是正確的格式將在編譯時進行檢查。
fn main() {
// In general, the `{}` will be automatically replaced with any
// arguments. These will be stringified.
println!("{} days", 31);
// Without a suffix, 31 becomes an i32. You can change what type 31 is,
// with a suffix.
// There are various optional patterns this works with. Positional
// arguments can be used.
println!("{0}, this is {1}. {1}, this is {0}", "Alice", "Bob");
// As can named arguments.
println!("{subject} {verb} {predicate}",
predicate="over the lazy dog",
subject="the quick brown fox",
verb="jumps");
// Special formatting can be specified after a \`:\`.
println!("{} of {:b} people know binary, the other half don't", 1, 2);
// It will even check to make sure the correct number of arguments are
// used.
println!("My name is {0}, {1} {0}", "Bond");
// FIXME ^ Add the missing argument: "James"
// Create a structure which contains an \`i32\`. Name it \`Structure\`.
struct Structure(i32);
// However, custom types such as this structure require more complicated
// handling. This will not work.
println!("This struct \`{}\` won't print...", Structure(3));
// FIXME ^ Comment out this line.
}
std::fmt 包括多個 traits 支配文本的顯示。 兩個重要的基本形式如下:
-
fmt::Debug
: 使用{:?}
標記。格式文本用於調試的目的。 -
fmt::Display
: 使用{}
標記。在一個更優雅的,用戶友好的方式設置文本格式。
這裏, fmt::Display
被使用,因爲std庫提供這些類型。 打印文本自定義類型,需要更多的步驟。