gpt4 book ai didi

indexing - Rust 无法索引到 'datatype<{integer}, {integer}>` 类型的值

转载 作者:行者123 更新时间:2023-12-03 11:48:54 24 4
gpt4 key购买 nike

我有以下内容:

impl<'a, K: Hash + Eq, V> Index<K> for &'a LFUCache<K, V> {
type Output = V;
fn index(&self, index: K) -> &Self::Output {
self.get(index).unwrap()

}
}

这编译得很好。

现在当我这样做时:
let mut lfu = LFUCache::new(2);
lfu.set(1, 1);
lfu[1] == 1;

我收到一个错误:
cannot index into a value of type `LFUCache<{integer}, {integer}>`
--> src/lib.rs:154:9
|
154 | lfu[1] == 1;
| ^^^^^^

我该如何解决?

最佳答案

rust 中没有任何后缀的数字没有特定的 int 类型,(它可以是 i8、i16、i32、u8 等中的任何一个),因此 rust 编译器无法推断出您希望缓存保存哪一个。有三种方法可以解决此问题:

  • 构造时明确指定:LFUCache::<i32,i32>::new(2)
  • 显式指定绑定(bind)的类型。 let mut lfu: LFUCache<i32,i32> =
  • 使用后缀显式指定要插入的 int 类型:lfu[1i32] = 1i32;

  • 我相信选项 2 在您的示例中是最惯用的。

    关于indexing - Rust 无法索引到 'datatype<{integer}, {integer}>` 类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61591277/

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