4

为什么我不能将字符串文字与字符串变量连接起来有什么原因吗?以下代码:

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!在这种情况下使用只会带来不必要的混乱。

4

3 回答 3

7

在最新版本的 Rust (0.11) 中,波浪号 ( ~) 运算符已被弃用。

以下是如何使用 0.11 版修复它的示例:

let mut foo = "bar".to_string();
foo = foo + "foo";
于 2014-09-05T03:47:49.543 回答
6

默认情况下,字符串文字具有静态生命周期,并且无法连接唯一向量和静态向量。使用唯一的文字字符串有助于:

fn main() {
    let x = ~"abcd";
    io::println(~"Message: " + x);
}
于 2013-04-14T08:40:23.177 回答
2

只是添加到上面的答案,只要最右边的字符串是 ~str 类型,那么您可以向其中添加任何类型的字符串。

let x = ~"Hello" + @" " + &"World" + "!";
于 2013-04-20T13:07:21.157 回答