Velo by Example: Hash Map

The Map[K, V] module provides a generic hash map with operator overloading for bracket access.

Create a Map and add entries using bracket syntax or put.

include "lang/map.vel";

Map[str, int] ages = new Map[str, int]();

ages["Alice"] = 30;
ages["Bob"] = 25;
ages.put("Charlie", 35);

Bracket access returns V directly. Use getOrDefault for a fallback value.

int age = ages["Alice"];    # 30

int eveAge = ages.getOrDefault("Eve", 0);  # 0

Check, insert conditionally, and remove entries.

bool has = ages.key("Bob");                # true
bool added = ages.putIfAbsent("Diana", 28); # true
bool removed = ages.del("Charlie");        # true

Iterate using keys() and vals().

array[str] k = ages.keys();
array[int] v = ages.vals();

int i = 0;
while (i < k.len) {
    # process k[i] and v[i]
    i = i + 1;
};