相关疑难解决方法(0)

如何在Rust中的格式字符串中转义花括号

我想写这个

write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但由于花括号对于格式化具有特殊意义,因此很明显我无法在没有转义的情况下放置外部花括号.所以我试图逃避它们.

write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

Rust也不喜欢这样.然后我读到了这个:

文字字符{,}或#可以包含在字符串中,前面加上\字符.由于\已经是Rust字符串中的转义字符,因此使用此转义的字符串文字将类似于"\ {".

所以我试过了

write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)
Run Code Online (Sandbox Code Playgroud)

但那也行不通.:-(

string-formatting rust

39
推荐指数
1
解决办法
8991
查看次数

如何将两个字符串字段与另一个字符串连接起来?

我不明白 Rust 如何处理字符串。我创建了一个带有两个字符串字段和一个方法的简单结构。此方法连接两个字段和参数中的字符串。我的代码:

fn main() {
    let obj = MyStruct {
        field_1: "first".to_string(),
        field_2: "second".to_string(),
    };

    let data = obj.get_data("myWord");
    println!("{}",data);
}

struct MyStruct {
    field_1: String,
    field_2: String,
}

impl MyStruct {
    fn get_data<'a>(&'a self, word: &'a str) -> &'a str {
        let sx = &self.field_1 + &self.field_2 + word;
        &* sx
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时出现错误:

src\main.rs:18:18: 18:31 error: binary operation `+` cannot be applied to type `&collections::string::String` [E0369]
src\main.rs:18         let sx = &self.field_1 + &self.field_2 + word;
                                ^~~~~~~~~~~~~
src\main.rs:19:10: …
Run Code Online (Sandbox Code Playgroud)

string struct string-concatenation rust

1
推荐指数
1
解决办法
744
查看次数