I\'m using a HashMap
to count the occurrences of different characters in a string:
let text = \"GATTACA\";
let mut counts: HashMap
You can use iterators to emulate the dictionary comprehension, e.g.
let counts = "ACGT".chars().map(|c| (c, 0_i32)).collect::>();
or even for c in "ACGT".chars() { counts.insert(c, 0) }
.
Also, one can write a macro to allow for concise initialisation of arbitrary values.
macro_rules! hashmap {
($( $key: expr => $val: expr ),*) => {{
let mut map = ::std::collections::HashMap::new();
$( map.insert($key, $val); )*
map
}}
}
used like let counts = hashmap!['A' => 0, 'C' => 0, 'G' => 0, 'T' => 0];
.