golang добавить к 2-му срезу - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь создать кусочек ломтиков.

Во всех примерах внутренние срезы основаны на целых числах.

Я пытаюсь создать срез из строковых срезов.

Пример:

[
[Name1,State1,Tags.Owner1]
[Name2,State2,Tags.Owner2]
[Name3,State3,Tags.Owner3]
]

Я пытаюсь сделать это так:

outerList :=  [][]string{}

i := 0
  for _,c := range clusters {
    input := &eks.DescribeClusterInput{
      Name: aws.String(c),
    }

   resp,err := svc.DescribeCluster(input)
    if err != nil {
        errorOut(`clusterData function: `+err.Error())
    }
    record := resp.Cluster
    data,_ := json.Marshal(record)
    error := json.Unmarshal(data, &cluster)
    if error != nil {errorOut(error.Error())}
    innerList := [...]string{cluster.Name,cluster.Tags["Vsad"],cluster.Status}
    outerList[string(i)] = innerList
  }

Я получаю следующую ошибку:

non-integer slice index string(i) 
cannot use innerList (type [3]string) as type []string in assignment 

Я знаю, что в Python я могу просто сделать:

outerList = list()

for c in cluster:
  a = [c.Name,c.State,c.Tags.Owner]
  outerList.append(a)

1 Ответ

2 голосов
/ 26 мая 2020

Вы можете использовать append. Форматируется следующим образом:

// make room for clusters
outerList := make([][]string, len(clusters))

// iterate and fill cluster data
for i, c := range clusters {
  // some processing where cluster variable is setupped

  // add new inner slice
  outerList[i] = append(outerList[i], cluster.Name, cluster.Tags["Vsad"], cluster.Status)
}
...