说我有一个二维数组:
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]
。
答案 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]