Аналог set() из python в rust
В python есть такой тип, как множество. Он выглядит так: set().
По своей семантике напоминает список, однако, как могу судить, в нем хранятся только хеши добавленных объектов.
Это удобно, для проверки на вхождение данных в определенную группу.
В раст можно использовать HashMap, но он, кажется, служит в первую очередь для того, чтобы связывать несколько объектов.
Стоит ли использовать HashMap для таких задач, как проверка на вхождение строки в список заданных строк или есть более подходящие методы?
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Используйте HashSet:
use std::collections::HashSet;
let mut books = HashSet::new();
// Добавление элементов
books.insert("A Dance With Dragons".to_string());
books.insert("To Kill a Mockingbird".to_string());
books.insert("The Odyssey".to_string());
books.insert("The Great Gatsby".to_string());
// Проверка на вхождение
if !books.contains("The Winds of Winter") {
println!("We have {} books, but The Winds of Winter ain't one.",
books.len());
}
// Удалить объект
books.remove("The Odyssey");
// Итерируемся
for book in &books {
println!("{book}");
}