在Ruby中,我可以做到这一点。
aaa = "AAA"
bbb = "BBB #{aaa}"
puts(bbb)
> "BBB AAA"
这种语法的要点是消除重复,并让它感觉像一个shell脚本 - 非常适合繁重的字符串操作。
Rust支持这个吗?或者有计划支持这个?或者有一些可以模仿的功能?
答案 0 :(得分:33)
Rust有字符串格式。
fn main() {
let a = "AAA";
let b = format!("BBB {}", a);
println(b);
}
// output: BBB AAA
在Rust版本中,没有额外的重复,但您必须显式调用format!()
,并且插入的值与字符串分开。这与Python和C#开发人员习惯使用的方式基本相同,理由是这种技术可以更轻松地将代码本地化为其他语言。
Rust邮件列表有一个存档的讨论([rust-dev] Suggestions),其中讨论了不同类型的字符串插值。
答案 1 :(得分:12)
RFC 2795已被接受,但尚未实施。提议的语法:
let (person, species, name) = ("Charlie Brown", "dog", "Snoopy");
// implicit named argument `person`
print!("Hello {person}");
// implicit named arguments `species` and `name`
format!("The {species}'s name is {name}.");
我希望很快能看到它。