Как конвертировать R c<str> в строку в Rust - PullRequest
1 голос
/ 21 апреля 2020

В настоящее время я пытаюсь создать интерпретатор в Rust, чтобы лучше понять его (как интерпретаторы, так и Rust). Я преобразовал входную строку в Rc<str>, и на более поздней стадии компиляции я хочу создать String из ее части. Я не смог найти ничего, что могло бы помочь мне в документации, поэтому я написал простую функцию, которая выглядит примерно так:

fn string_from_rc(r: &std::rc::Rc<str>) -> String {
    let chars = r.chars();
    let mut s = String::new();
    for c in chars {
        s.push(c);
    }
    s
}

, но я уверен, что есть лучший способ решить эту проблему go.

1 Ответ

2 голосов
/ 21 апреля 2020

.to_string() достаточно:

fn string_from_rc(r: &std::rc::Rc<str>) -> String {
    r.to_string()
}

Эквивалентом также будет .to_owned(), вызываемое для значения str. Следует запомнить одну простую вещь: если у вас есть &Rc<str>, то все методы по-прежнему доступны &str, но, возможно, в некоторых случаях используются методы trait типа интеллектуального указателя (здесь * 1011) *) встать на пути.

.to_string() происходит от черты ToString, которую, конечно, реализует str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...