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 に答える