在Rust中,没有内置的宏可以直接复制Python的F-strings的确切功能,在此您可以在字符串本身内的卷曲括号内使用变量名称。但是,您可以定义自己的宏以获得类似的结果。
这是一个示例:
macro_rules! f_string {
($($tokens:tt)*) => {
format!($($tokens)*)
};
}
fn main() {
let my_name = "Santee";
let message = f_string!("{my_name} is cool");
println!("{}", message);
}
在此示例中,我们定义了一个称为f_string
的自定义宏,该宏可将任何令牌拿走并直接传递给格式!宏。然后,format!
宏基于提供的令牌执行字符串插值。
您可以使用f_string
宏来实现类似于python的f-strings的语法,在该语法中,您将变量名称封闭在字符串中的卷曲括号中。但是,请注意,与Python相比,Rust的宏系统具有不同的语法和功能,因此所产生的宏可能无法提供与Python的F-strings相同的所有功能或灵活性。