Поддерживает ли Rust Ruby-подобную интерполяцию строк?

В Ruby я мог бы это сделать.

aaa = "AAA"
bbb = "BBB #{aaa}"

puts(bbb)

> "BBB AAA"

Точка этого синтаксиса исключает повторение и делает его похожим на оболочку script - отлично подходит для тяжелых манипуляций с строкой.

Поддерживает ли Rust это? Или планируете поддержать это? Или есть функция, которая может имитировать это?

Ответ 1

Руст имеет форматирование строки.

fn main() {
    let a = "AAA";
    let b = format!("BBB {}", a);
    println(b);
}
// output: BBB AAA

В версии Rust дополнительных повторений нет, но вы должны явно вызывать format!() И вставленные значения отделяются от строки. По сути, это тот же способ, которым разработчики Python и С# привыкли делать что-то, и обоснование заключается в том, что этот метод облегчает локализацию кода на другие языки.

В списке рассылки Rust есть архивное обсуждение (предложения [rust-dev]), в котором обсуждаются различные типы интерполяции строк.