Ale*_*tau 16 arrays struct go slice

问题

我有一些结构:

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
}

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