mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-17 16:38:33 +00:00
Array typedesc len (#6032)
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user