Rust格式化打印

打印是通过一系列在标准定义std::fmt其中一些宏处理包括:

  • format!: 写格式化的文本到字符串
  • print!: 类似于 format! 但文本打印到控制台上。
  • println!: 类似于 print! 但追加一个换行符。

以相同的方式解析全部文本。加号是正确的格式将在编译时进行检查。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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库提供这些类型。 打印文本自定义类型,需要更多的步骤。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3