Как определить вложенный HashMap с неизвестным уровнем вложенности? - PullRequest
0 голосов
/ 08 января 2020

Я хочу пройти через дерево файлов и сохранить имена файлов и каталогов во вложенной HashMap. Как определить такой вложенный HashMap? Что-то вроде: toc: HashMap<String, HashMap> не компилируется.

1 Ответ

4 голосов
/ 08 января 2020

Rust является статически типизированным языком, поэтому вам нужно заранее сообщить компилятору точный тип элементов в вашем HashMap. Поскольку каждая запись может быть именем файла или другим HashMap, самое простое решение - использовать тип enum:

enum Entry {
    File(String),
    Directory(HashMap<String, Entry>),
}

. Это позволяет моделировать произвольное вложение.

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