1
0
forked from Mirror/wren

Key and value iteration for maps. Also toString.

This commit is contained in:
Bob Nystrom
2015-01-25 10:27:38 -08:00
parent 251b623c65
commit 492c730e6f
9 changed files with 250 additions and 4 deletions

View File

@ -89,8 +89,39 @@ class List is Sequence {
}
class Map {
// TODO: Implement this.
toString { "{}" }
keys { new MapKeySequence(this) }
values { new MapValueSequence(this) }
toString {
var first = true
var result = "{"
for (key in keys) {
if (!first) result = result + ", "
first = false
result = result + key.toString + ": " + this[key].toString
}
return result + "}"
}
}
class MapKeySequence is Sequence {
new(map) {
_map = map
}
iterate(n) { _map.iterate_(n) }
iteratorValue(iterator) { _map.keyIteratorValue_(iterator) }
}
class MapValueSequence is Sequence {
new(map) {
_map = map
}
iterate(n) { _map.iterate_(n) }
iteratorValue(iterator) { _map.valueIteratorValue_(iterator) }
}
class Range is Sequence {}