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

时间:2018-01-24 09:33:03

标签: arrays tuples nim

说我有一个二维数组:

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

一个元组:

type
  Point: tuple[x, y: int]

let p: Point = (1,1)

我可以通过a索引到a[p.x][p.y],但是有更短的方式吗?

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

1 个答案:

答案 0 :(得分:2)

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

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]