Back to questions
Холодильник.ру
Senior
2
1. что выведит, как исправить, как сделать потокозащищенной (waitGroup) 2. убрать дубликаты в слайсе
Companies where asked
Answer from AI
sobes.tech AI
- Что выведет, как исправить, как сделать потокозащищенной (waitGroup)
Без конкретного кода сложно точно сказать, но типичная ошибка с sync.WaitGroup в Go — неправильное использование методов Add, Done и Wait, что может привести к панике или дедлоку.
Пример правильного использования:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// работа
}()
wg.Wait()
Важно вызывать Add до запуска горутины, чтобы избежать гонок.
Чтобы сделать потокозащищенным, нужно правильно синхронизировать доступ к общим данным, например, используя мьютексы или каналы.
- Убрать дубликаты в слайсе
Пример функции для удаления дубликатов из слайса строк:
func removeDuplicates(slice []string) []string {
seen := make(map[string]struct{})
result := []string{}
for _, v := range slice {
if _, ok := seen[v]; !ok {
seen[v] = struct{}{}
result = append(result, v)
}
}
return result
}
Для других типов можно использовать аналогичный подход с мапой для отслеживания уникальных элементов.