The Map: module provides a string-keyed dictionary. All methods follow the ByRef convention.
| Call | Effect |
|---|---|
Map:New name |
Create an empty map |
Map:Set(key, val, name) |
Insert or overwrite a key |
Map:Get(key, name, outVar) |
Read value → outVar (0 if key absent) |
Map:Has(key, name, outVar) |
true if key exists → outVar |
Map:Remove(key, name) |
Delete a key |
Map:Size(name, outVar) |
Number of entries → outVar |
Map:Keys(name, listName) |
Populate a pre-declared List:String with all keys (order unspecified) |
Map:Clear(name) |
Remove all entries |
Map:SetList(key, listName, name) |
Store a copy of listName under key |
Map:GetList(key, name, listName) |
Retrieve list stored at key into listName |
Map:SetMap(key, innerName, name) |
Store a copy of map innerName under key |
Map:GetMap(key, name, innerName) |
Retrieve inner map at key into innerName |
Map:New scores;
Map:Set("Alice", 95, scores);
Map:Set("Bob", 82, scores);
Var:Number val;
Map:Get("Alice", scores, val);
Konsol:Print(val); // 95
Var:Boolean found;
Map:Has("Carol", scores, found);
Konsol:Print(found); // false
Var:Number sz;
Map:Size(scores, sz);
Konsol:Print(sz); // 2
List:String keys;
Map:Keys(scores, keys);
List:Size(keys, sz);
Konsol:Print(sz); // 2
// Map of lists
List:Number nums;
List:Push(1, nums);
List:Push(2, nums);
Map:SetList("evens", nums, scores);
List:Number retrieved;
Map:GetList("evens", scores, retrieved);
// 24_map.ks — Map module (string-keyed dictionary)
Var:Number sz;
Var:Boolean found;
Var:Number numVal;
Var:String strVal;
Konsol:Print("=== set / get ===");
Map:New scores;
Map:Set("Alice", 95, scores);
Map:Set("Bob", 82, scores);
Map:Set("Carol", 77, scores);
Map:Get("Alice", scores, numVal);
Konsol:Print(numVal); // 95
Map:Get("Bob", scores, numVal);
Konsol:Print(numVal); // 82
Konsol:Print("=== has ===");
Map:Has("Carol", scores, found);
Konsol:Print(found); // true
Map:Has("Dave", scores, found);
Konsol:Print(found); // false
Konsol:Print("=== size ===");
Map:Size(scores, sz);
Konsol:Print(sz); // 3
Konsol:Print("=== overwrite ===");
Map:Set("Bob", 90, scores);
Map:Get("Bob", scores, numVal);
Konsol:Print(numVal); // 90
Konsol:Print("=== remove ===");
Map:Remove("Carol", scores);
Map:Has("Carol", scores, found);
Konsol:Print(found); // false
Map:Size(scores, sz);
Konsol:Print(sz); // 2
Konsol:Print("=== missing key returns 0 ===");
Map:Get("nobody", scores, numVal);
Konsol:Print(numVal); // 0
Konsol:Print("=== string values ===");
Map:New capitals;
Map:Set("France", "Paris", capitals);
Map:Set("Japan", "Tokyo", capitals);
Map:Set("Egypt", "Cairo", capitals);
Map:Get("Japan", capitals, strVal);
Konsol:Print(strVal); // Tokyo
Konsol:Print("=== keys ===");
Map:New small;
Map:Set("x", 1, small);
Map:Set("y", 2, small);
List:String keyList;
Map:Keys(small, keyList);
List:Size(keyList, sz);
Konsol:Print(sz); // 2
Konsol:Print("=== clear ===");
Map:Clear(small);
Map:Size(small, sz);
Konsol:Print(sz); // 0