如何概括使用不同类型的键传递给函数的HashMap?

问题描述 投票:1回答:1

我有一个hm1: HashMap<K, V>,其中K是一个元组(k1, 2, k3)V是一个包含10个元素的元组,例如(v1, v2, v3, /* ... */ v10)

我有一个作用于该HashMap的函数,所以我将其作为参数传递:

fn do_something(hm1: HashMap<(&i64, &i64, &Option<i64>), (&i64, &i64, /* ... */ &i64)>) -> () {
    //Access k1, k2, k3 and v1 .. v10 and do something with it
}

我还有第二个HashMap hm2,唯一的区别是附加的关键元素。 hm2: HashMap<K, V>其中K是元组(k1, k2, k3, k4)V再次是10个元素(v1, v2, v3, /* ... */ v10)的元组。

我想避免复制并粘贴带有自适应签名的相同do_something()函数,因为内部逻辑几乎相同。区别只是在元组中有一个附加的k4元素,如果我有hm2,我也将访问该元素。

是否有一种方法可以概括化HashMap<K, V>参数,以便我可以传递两个HashMap并对其执行操作,而无需复制函数?

我有一个hm1:HashMap ,其中K是一个元组(k1、2,k3),V是一个包含10个元素的元组,例如(v1,v2,v3,/ * ... * / v10)。我有一个作用于该HashMap的函数,因此我将其作为...

rust hashmap parameter-passing generalization
1个回答
0
投票

我想避免复制粘贴具有自适应签名的相同do_something()函数,因为内部逻辑几乎相同。

© www.soinside.com 2019 - 2024. All rights reserved.