Если вам нужно много раз проверять, то лучше один раз создать поле map[string]int
из id
.
И каждый раз, просто проверяйте, карта содержит это id
или нет
Здесь id
как ключ и срез index
как значение
mp := make(map[string]int)
for idx, a := range yourStuctSlice {
mp[a.id] = idx
}
if idx, ok := mp[id]; ok {
// remove the element using idx
}
Если новый элемент добавлен в слайс, затем обновите карту также
mp[newElement.id] = true
Если вы хотите удалить искомый элемент, вы можете удалить его по индексу слайса
func RemoveIndex(s []yourStuct, index int) []int {
return append(s[:index], s[index+1:]...)
}
if idx, ok := mp[id]; ok {
yourStuctSlice = RemoveIndex(yourStuctSlice , idx)
delete(mp , id); // Remove from map also for next search
}