diff options
author | Araq <rumpf_a@web.de> | 2016-03-29 15:30:44 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2016-03-29 15:31:10 +0200 |
commit | db2b2156581ffaaa63e7ff9c0a07ced540006956 (patch) | |
tree | 341535aa355ef422ee886f7b14fda6fbfeae0523 /lib/pure/strutils.nim | |
parent | 8bf14b12a963980e71ad46e16a8a2e35c9465b8c (diff) | |
parent | b4f1eef3a3b0ff56d0a68c15c43ffecb7778e939 (diff) | |
download | Nim-db2b2156581ffaaa63e7ff9c0a07ced540006956.tar.gz |
resolved merge conflicts
Diffstat (limited to 'lib/pure/strutils.nim')
-rw-r--r-- | lib/pure/strutils.nim | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index a446f85b4..f2c1e77e1 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -882,7 +882,7 @@ proc abbrev*(s: string, possibilities: openArray[string]): int = # --------------------------------------------------------------------------- -proc join*(a: openArray[string], sep: string): string {. +proc join*(a: openArray[string], sep: string = ""): string {. noSideEffect, rtl, extern: "nsuJoinSep".} = ## Concatenates all strings in `a` separating them with `sep`. if len(a) > 0: @@ -896,16 +896,15 @@ proc join*(a: openArray[string], sep: string): string {. else: result = "" -proc join*(a: openArray[string]): string {. - noSideEffect, rtl, extern: "nsuJoin".} = - ## Concatenates all strings in `a`. - if len(a) > 0: - var L = 0 - for i in 0..high(a): inc(L, a[i].len) - result = newStringOfCap(L) - for i in 0..high(a): add(result, a[i]) - else: - result = "" +proc join*[T: not string](a: openArray[T], sep: string = ""): string {. + noSideEffect, rtl.} = + ## Converts all elements in `a` to strings using `$` and concatenates them + ## with `sep`. + result = "" + for i, x in a: + if i > 0: + add(result, sep) + add(result, $x) type SkipTable = array[char, int] @@ -1721,3 +1720,8 @@ when isMainModule: doAssert(not isUpper("AAcc")) doAssert(not isUpper("A#$")) doAssert(unescape(r"\x013", "", "") == "\x013") + + doAssert join(["foo", "bar", "baz"]) == "foobarbaz" + doAssert join(@["foo", "bar", "baz"], ", ") == "foo, bar, baz" + doAssert join([1, 2, 3]) == "123" + doAssert join(@[1, 2, 3], ", ") == "1, 2, 3" |