Почему ржавчина c говорит о несовпадающих типах? - PullRequest
0 голосов
/ 03 мая 2020

В этом коде

use ignore::WalkBuilder;

fn main() {
    let walk_iter = WalkBuilder::new("./").hidden(false).build();

    let mut walk_paths: Vec<std::path::PathBuf> = Vec::new();

    for entry in walk_iter {
        let entry = entry.unwrap().into_path();
        walk_paths.append(entry);
    }
}

почему ржавчина c сообщает о несовпадении типов, ожидаемой изменяемой ссылке & mut std :: ve c :: Ve c found struct std :: path :: PathBuf при добавлении записи?

1 Ответ

2 голосов
/ 03 мая 2020

Метод std::vec::Vec::append добавляет содержимое другого вектора в текущий:

pub fn append(&mut self, other: &mut Vec<T>)

Перемещает все элементы other в Self, оставляя other пустым.

Вы ищете std::vec::Vec::push:

pub fn push(&mut self, value: T)

Добавляет элемент в конец коллекции .

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