gpt4 book ai didi

rust - 使用 println 打印不同次数的字符

转载 作者:行者123 更新时间:2023-11-29 07:49:57 35 4
gpt4 key购买 nike

我想使用 println! 和强大的格式化工具 format! 将一个字符打印特定次数。当然,这可以通过循环实现,如下所示:

fn give_love(count: usize) {
print!("Here is love for you: ");
for i in 0..count {
print!("♥");
}
println!("");
}

但我既不想编写循环,也不想编写三个 print。如何做得更短/更好?

最佳答案

您的代码的解决方案

fn give_love(count: usize) {
println!("Here is love for you: {:♥<1$}", "", count);
}

解释

您可以(错误地)使用允许使用您选择的某些字符填充打印值的填充功能。仅此功能的语法如下所示:

'{' ':' <fill> <align> <width> '}'

在哪里width是常数或对 <argument_index> '$' 类型参数的引用.所以3将意味着宽度为常量 3 和 1$表示 println! 的第一个参数值的宽度.


但是:这里我们有点“误用”了这个特性,我们不能忘记我们只是为一些其他可打印的东西指定了“填充”,它通过参数传递给println。 .不过,这可以是一个空字符串。

println!("love: {:♥<3}", "");     // love: ♥♥♥
println!("love: {:♥<1$}", "", 5); // love: ♥♥♥♥♥

下面是一些我们不传递空字符串的例子:

println!("love: {:♥<5}", "#");    // love: #♥♥♥♥
println!("love: {:♥>5}", "#"); // love: ♥♥♥♥#
println!("love: {:♥^5}", "#"); // love: ♥♥#♥♥

关于rust - 使用 println 打印不同次数的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280798/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com