gpt4 book ai didi

rust - 为什么 &str 不实现 IntoIterator?

转载 作者:行者123 更新时间:2023-11-29 08:01:41 25 4
gpt4 key购买 nike

我正在编写一个以通用方式实现前缀树的容器(键和值是通用参数)。由于此数据结构的性质,我需要具有迭代器的 key 。

基本上符合this question IntoIterator 特征是造成这种可能性的原因,但并非所有结构都实现了它。例如 &strString 没有实现它。

IntoIterator 不是标准类型实现的情况下,我该怎么办?

预期的 API 是

let mut t1 = Trie::new();
t1.insert(String::from("this"), 1);

let mut t2 = Trie::new();
t2.insert(vec![1, 2, 3], 1);

最佳答案

Stringstr 的问题在于它们有两种类型的迭代器 - chars() - UTF-8 字符的迭代器和bytes() - 字节迭代器。这就是不可能为这些类型实现 IntoIterator 的原因。您必须创建两个包装器(或选择其中一个)

struct ByteString(String)
struct Utf8String(String)

并为它们实现 IntoIterator

关于rust - 为什么 &str 不实现 IntoIterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com