在 Go中循環中從結構體數組中刪除元素
問題:
從數組中刪除元素時循環內的結構體,“超出範圍”錯誤可能
解:
要從結構體數組中按鍵刪除元素,建議使用以下切片技巧之一:
a = append(a[:i], a[i+1:]...)
或
a = a[:i+copy(a[i:], a[i+1:])]
重要注意:
如果從正在循環的切片中刪除元素,使用向下循環以避免跳過元素至關重要。
修改程式碼:
// Your original loop with the issue: // for i, application := range config.Applications { // if i == 1 { // config.Applications = _removeApplication(i, config.Applications) // } // } // Corrected code using downward loop: for i := len(config.Applications) - 1; i >= 0; i-- { application := config.Applications[i] // Condition to decide if current element has to be deleted: if haveToDelete { config.Applications = append(config.Applications[:i], config.Applications[i+1:]...) } }
以上是在循環中從 Go 結構體數組中刪除元素時如何避免'超出範圍”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!