此问题在此处已有答案:
Why is the width ignored for my custom formatter implementation?(1个答案)
3天前关闭。
首先我写了一个结构体:
struct sdt {
name: String,
sex: bool
}
然后对其执行impl*Display
*:
impl Display for sdt {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "<{}, {}>", self.name, self.sex)
}
}
现在我想打印它居中如下:
fn main() {
println!("{:^30}", "hello world!");
let s = sdt {
name: String::from("cheng-min"),
sex: false
};
println!("{:^30}", s)
}
但它的输出是:output
你能告诉我发生了什么事以及如何解决这个问题吗?
1条答案
按热度按时间erhoui1w1#
格式说明符本身不做任何工作,它们被传递给
Formatter
对象,在Display
实现中调用f
,函数可以随意使用它们。例如,要将结果输出填充到给定宽度(像许多内置类型所做的那样),请使用
Formatter::pad