使用元组的声明和/或定义数组

问题描述 投票:0回答:1

如何拥有并声明/定义 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)

一切都以无果而终。正确的做法是什么?

nim-lang
1个回答
2
投票

您需要使用

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] = ...
© www.soinside.com 2019 - 2024. All rights reserved.