builtin: add a map.clear() method (#14373)
parent
1bde8611f0
commit
a91bd5a5bb
|
@ -294,6 +294,14 @@ pub fn (mut m map) move() map {
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clear clears the map without deallocating the allocated data.
|
||||||
|
// It does it by setting the map length to `0`
|
||||||
|
// Example: a.clear() // `a.len` and `a.key_values.len` is now 0
|
||||||
|
pub fn (mut m map) clear() {
|
||||||
|
m.len = 0
|
||||||
|
m.key_values.len = 0
|
||||||
|
}
|
||||||
|
|
||||||
[inline]
|
[inline]
|
||||||
fn (m &map) key_to_index(pkey voidptr) (u32, u32) {
|
fn (m &map) key_to_index(pkey voidptr) (u32, u32) {
|
||||||
hash := m.hash_fn(pkey)
|
hash := m.hash_fn(pkey)
|
||||||
|
|
|
@ -245,6 +245,14 @@ fn test_mut_arg() {
|
||||||
assert a == 10
|
assert a == 10
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_clear() {
|
||||||
|
mut m := map[string]int{}
|
||||||
|
m['one'] = 1
|
||||||
|
m['two'] = 2
|
||||||
|
m.clear()
|
||||||
|
assert m.len == 0
|
||||||
|
}
|
||||||
|
|
||||||
fn test_delete() {
|
fn test_delete() {
|
||||||
mut m := map[string]int{}
|
mut m := map[string]int{}
|
||||||
m['one'] = 1
|
m['one'] = 1
|
||||||
|
|
Loading…
Reference in New Issue