added $ for arrays

This commit is contained in:
Simon Hafner
2014-03-31 15:58:52 -05:00
parent ffb36db5a6
commit 71b69a627f
2 changed files with 19 additions and 15 deletions

View File

@@ -1705,6 +1705,15 @@ proc `$`*[T: tuple|object](x: T): string =
result.add($value)
firstElement = false
result.add(")")
proc collectionToString[T](x: T, b, e: string): string =
result = b
var firstElement = true
for value in items(x):
if not(firstElement): result.add(", ")
result.add($value)
firstElement = false
result.add(e)
proc `$`*[T: set](x: T): string =
## generic ``$`` operator for sets that is lifted from the components
@@ -1712,13 +1721,7 @@ proc `$`*[T: set](x: T): string =
##
## .. code-block:: nimrod
## ${23, 45} == "{23, 45}"
result = "{"
var firstElement = true
for value in items(x):
if not(firstElement): result.add(", ")
result.add($value)
firstElement = false
result.add("}")
collectionToString(x, "{", "}")
proc `$`*[T: seq](x: T): string =
## generic ``$`` operator for seqs that is lifted from the components
@@ -1726,13 +1729,10 @@ proc `$`*[T: seq](x: T): string =
##
## .. code-block:: nimrod
## $(@[23, 45]) == "@[23, 45]"
result = "@["
var firstElement = true
for value in items(x):
if not(firstElement): result.add(", ")
result.add($value)
firstElement = false
result.add("]")
collectionToString(x, "@[", "]")
proc `$`*[T: array](x: T): string =
collectionToString(x, "[", "]")
# ----------------- GC interface ---------------------------------------------

View File

@@ -1,7 +1,11 @@
discard """
output:'''@[23, 45]
@[, \"foo\", \"bar\"]'''
@[, foo, bar]
[, foo, bar]
[23, 45]'''
"""
echo($(@[23, 45]))
echo($(@["", "foo", "bar"]))
echo($(["", "foo", "bar"]))
echo($([23, 45]))