Array typedesc len (#6032)
This commit is contained in:
parent
ae7fe5087f
commit
ea47234b35
2 changed files with 19 additions and 1 deletions
|
|
@ -718,7 +718,7 @@ proc len*[TOpenArray: openArray|varargs](x: TOpenArray): int {.
|
|||
magic: "LengthOpenArray", noSideEffect.}
|
||||
proc len*(x: string): int {.magic: "LengthStr", noSideEffect.}
|
||||
proc len*(x: cstring): int {.magic: "LengthStr", noSideEffect.}
|
||||
proc len*[I, T](x: array[I, T]): int {.magic: "LengthArray", noSideEffect.}
|
||||
proc len*(x: (type array)|array): int {.magic: "LengthArray", noSideEffect.}
|
||||
proc len*[T](x: seq[T]): int {.magic: "LengthSeq", noSideEffect.}
|
||||
## returns the length of an array, an openarray, a sequence or a string.
|
||||
## This is roughly the same as ``high(T)-low(T)+1``, but its resulting type is
|
||||
|
|
|
|||
18
tests/array/tarraylen.nim
Normal file
18
tests/array/tarraylen.nim
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
discard """
|
||||
output: ""
|
||||
"""
|
||||
var a: array[0, int]
|
||||
doAssert a.len == 0
|
||||
doAssert array[0..0, int].len == 1
|
||||
doAssert array[0..0, int]([1]).len == 1
|
||||
doAssert array[1..1, int].len == 1
|
||||
doAssert array[1..1, int]([1]).len == 1
|
||||
doAssert array[2, int].len == 2
|
||||
doAssert array[2, int]([1, 2]).len == 2
|
||||
doAssert array[1..3, int].len == 3
|
||||
doAssert array[1..3, int]([1, 2, 3]).len == 3
|
||||
doAssert array[0..2, int].len == 3
|
||||
doAssert array[0..2, int]([1, 2, 3]).len == 3
|
||||
doAssert array[-2 .. -2, int].len == 1
|
||||
doAssert([1, 2, 3].len == 3)
|
||||
doAssert([42].len == 1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue