问题

我有一系列的结构:

type Config struct {
  Applications []Application
}

注意:config-是json.decode的结构。

config = new(Config)
_ = decoder.Decode(&config)

在循环中,我有一些条件和元素按键删除。

for i, application := range config.Applications {
  if i == 1 {
    config.Applications = _removeApplication(i, config.Applications)
  }
}

func _removeApplication(i int, list []Application) []Application {
  if i < len(list)-1 {
    list = append(list[:i], list[i+1:]...)
  } else {
    log.Print(list[i].Name)
    list = list[:i]
  }

  return list
}

但我总是有“超出范围”的错误。从结构数组中按键删除元素的最佳方法是什么?