以下是测试代码:
pub fn reverse_complement_seq_u8<T>(seq: T, len: usize) -> Vec<u8>
where T: std::ops::Index<usize, Output = u8>
{
(0..len).rev().map(|i| match seq[i] {
65 | 97 => 84, // 'A' | 'a' => 'T'
84 | 116 => 65, // 'T' | 't' => 'A'
71 | 103 => 67, // 'G' | 'g' => 'C'
67 | 99 => 71, // 'C' | 'c' => 'G'
n => n,
}
).collect()
}
fn main() {
let seqs = "ACGATGCTACGA".as_bytes();//generated by another function …Run Code Online (Sandbox Code Playgroud) 我想同时从哈希图中获取两个值,但我无法逃避以下错误,我已将代码简化如下,任何人都可以帮助我修复此错误。
#[warn(unused_variables)]
use hashbrown::HashMap;
fn do_cal(a: &[usize], b: &[usize]) -> usize {
a.iter().sum::<usize>() + b.iter().sum::<usize>()
}
fn do_check(i: usize, j:usize) -> bool {
i/2 < j - 10
}
fn do_expensive_cal(i: usize) -> Vec<usize> {
vec![i,i,i]
}
fn main() {
let size = 1000000;
let mut hash: HashMap<usize, Vec<usize>> = HashMap::new();
for i in 0..size{
if i > 0 {
hash.remove(&(i - 1));
}
if !hash.contains_key(&i){
hash.insert(i, do_expensive_cal(i));
}
let data1 = hash.get(&i).unwrap();
for j in i + 1..size { …Run Code Online (Sandbox Code Playgroud)