我有什么理由不能将字符串文字与字符串变量连接起来吗?以下代码:
fn main() {
let x = ~"abcd";
io::println("Message: " + x);
}
给出了这个错误:
test2.rs:3:16: 3:31 error: binary operation + cannot be applied to type `&'static str`
test2.rs:3 io::println("Message: " + x);
^~~~~~~~~~~~~~~
error: aborting due to previous error
我想这是一个非常基本且非常常见的模式,在这种情况下使用fmt!
只会带来不必要的混乱。
答案 0 :(得分:7)
使用最新版本的Rust(0.11),不推荐使用波浪号(~
)运算符。
以下是如何使用0.11版修复它的示例:
let mut foo = "bar".to_string();
foo = foo + "foo";
答案 1 :(得分:6)
默认情况下,字符串文字具有静态生命周期,并且无法连接唯一和静态向量。使用唯一的文字字符串有助于:
fn main() {
let x = ~"abcd";
io::println(~"Message: " + x);
}
答案 2 :(得分:2)
只要添加上面的答案,只要最右边的字符串是〜str类型,那么你可以添加任何类型的字符串。
let x = ~"Hello" + @" " + &"World" + "!";