Arrays 我可以在Nim中使用元组索引到多维数组中吗?

Arrays 我可以在Nim中使用元组索引到多维数组中吗?,arrays,tuples,nim-lang,Arrays,Tuples,Nim Lang,假设我有一个2d数组: var a = [[1,2],[3,4]] 和一个元组: type Point: tuple[x, y: int] let p: Point = (1,1) 我可以通过a[p.x][p.y]索引到a,但是有没有更短的方法 例如,在Python的numpy中,我可以直接执行a[p]。我不这么认为。但像往常一样,您可以添加一些您认为有用的函数,即使语言本身不支持它们: proc `[]`[N, T](xs: openarray[array[N, T]], p: (i

假设我有一个2d数组:

var a = [[1,2],[3,4]]
和一个元组:

type
  Point: tuple[x, y: int]

let p: Point = (1,1)
我可以通过
a[p.x][p.y]
索引到
a
,但是有没有更短的方法


例如,在Python的numpy中,我可以直接执行
a[p]

我不这么认为。但像往常一样,您可以添加一些您认为有用的函数,即使语言本身不支持它们:

proc `[]`[N, T](xs: openarray[array[N, T]], p: (int, int)): T = xs[p[0]][p[1]]
proc `[]`[T](xs: openarray[seq[T]], p: (int, int)): T = xs[p[0]][p[1]]

type Point = tuple[x, y: int]
let p: Point = (1,1)

var a = [[1,2],[3,4]]
var b = @[@[1,2],@[3,4]]

echo a[p]
echo b[p]