Create an object/Native demonstration: Difference between revisions

Content added Content deleted
(Added Wren)
(→‎{{header|Wren}}: Wasn't quite right before.)
Line 1,251: Line 1,251:


[key] { _map[key] }
[key] { _map[key] }
[key] =(value) { _map[key] = value }
[key] =(value) {
// do nothing if key doesn't already exist
if (_map[key] != null) _map[key] = value
}


reset(key) {
reset(key) {
var t = _map[key].type
var t = _map[key].type
// leave unaltered if no suitable default value
_map[key] = (t == Num) ? 0 :
_map[key] = (t == Num) ? 0 :
(t == String) ? "":
(t == String) ? "":
(t == Bool) ? false :
(t == Bool) ? false :
(t == List) ? [] :
(t == List) ? [] :
(t == Map) ? {} : Fiber.abort("No suitable default value for type %(t)")
(t == Map) ? {} : _map[key]
}
}


iterate(iterator) { _map.iterate(iterator) }
iterate(iterator) { _map.iterate(iterator) }
Line 1,288: Line 1,292:
{b: 4, a: 3}
{b: 4, a: 3}
false
false
{b: 4, a: 3}
{b: 4, a: 0}
{b: 4, a: 0}
[b, a]
[b, a]