Удалить элемент среза в течение

Идиоматический метод удаления элементаi от ломтикаaСохраняя порядок, кажется:

a = append(a[:i], a[i+1:]...)

Мне было интересно, что будет лучшим способом сделать это внутри цикла. Как я понимаю, невозможно использовать его в диапазоне для:

for i := range a { // BAD
    if conditionMeets(a[i]) {
        a = append(a[:i], a[i+1:]...)
    }
}

Однако можно использоватьlen(a), [РЕДАКТИРОВАТЬ: это не работает, см. Ответы ниже]

for i := 0; i < len(a); i++ {
    if conditionMeets(a[i]) {
        a = append(a[:i], a[i+1:]...)
    }
}

Есть ли лучший или более идиоматический способ, чем использованиеlen или жеappend?

Ответы на вопрос(1)

Ваш ответ на вопрос