#不可变 #集合 #哈希 #工具

frozenset

frozenset(),用于 Rust

5 个版本

0.2.2 2023 年 6 月 21 日
0.2.1 2023 年 6 月 21 日
0.2.0 2023 年 6 月 16 日
0.1.1 2023 年 6 月 15 日
0.1.0 2023 年 6 月 15 日

65#不可变


用于 minesweeprs

MIT 许可证

13KB
226

frozenset

frozenset() 用于 Rust

什么是 frozenset

frozenset 是一个 Rust 库包,提供了 FrozenMapFrozenSet 类型,它们是 HashMapHashSet 的包装。这些类型实现了 Hash,因此适合用作其他 HashMapHashSet 的键。

为什么我想使用 frozenset

frozenset 在您想将 HashMapHashSet 作为另一个 HashMapHashSet 的键时很有用。这是不可能的,因为标准库类型没有实现 Hash

冻结集合已在其他语言中显示出其有用性 - 在 Python 中,frozenset() 被认为非常有用,以至于它是一个内置的全局可访问类型。

如何使用 frozenset

很简单!只需将 frozenset 添加到您的 Cargo.toml

[dependencies]
frozenset = "0.1"

确保 frozenset::Freeze 在作用域内,并在您的 HashMapHashSet 上调用 .freeze()

use std::collections::HashMap;

use frozenset::Freeze;

let map: HashMap<i32, i32> = [(1, 2), (3, 4)].into();
let frozen_map = map.freeze();
// Now you can use `frozen_map` as a key in another `HashMap` or `HashSet`!
let mut map_of_maps = HashMap::new();
map_of_maps.insert(frozen_map, 7i32);

为什么 frozenset 只有 0.2.2?

frozenset 目前处于预发布状态。它还不被认为是稳定的,我可能会添加/更改任何我认为不完整的功能。

依赖关系

~175KB