如何拥有并声明/定义 tuple[ string , seq[ array[2,string] ] ] 的数组
插图是
var
a : seq[tuple[ string , seq[array[ 2, string]] ] ]
a[0] = [ "foo", [ ["hello", "foo"], ["foo", "bar" ] ] ]
a[1] = [ "bar", [ ["hello", "world"], ["hello", bar"] ] ]
a[2] = [ "hello", [ ["foo","bar"], ["hello","world"], ["bar", "baz"] ] ]
.
.
.
a[n] =
在这种变化中尝试了相当长的时间,例如
a = newSeqOfCap[ (string, newSeqOfCap[ array[ 2, string]](40) ) ](9)
一切都以无果而终。正确的做法是什么?
您需要使用
newSeq
,而不是newSeqOfCap
。后者只是为序列分配空间,实际上并没有在其中放置任何内容供您修改。
var a = newSeq[(string, seq[array[2, string]])](n)
a[0] = ("foo", @[["hello", "foo"], ["foo", "bar"]])
a[1] = ("bar", @[["hello", "world"], ["hello", "bar"]])
a[2] = ("hello", @[["foo", "bar"], ["hello", "world"], ["bar", "baz"]])
.
.
.
a[n] = ...