Назад к вопросам
Middle+
5
Live coding: дедупликация адресов — как обработать список с дублями, чтобы вызывать уникальные адреса. Решение через map.
Компании, где спрашивали
Веро Трейс
Ответ от нейросети
sobes.tech AI
Для дедупликации списка адресов в Go удобно использовать map, где ключом будет адрес, а значением — булево значение или пустая структура для экономии памяти.
Пример:
package main
import "fmt"
func uniqueAddresses(addresses []string) []string {
seen := make(map[string]struct{})
var result []string
for _, addr := range addresses {
if _, exists := seen[addr]; !exists {
seen[addr] = struct{}{}
result = append(result, addr)
}
}
return result
}
func main() {
addresses := []string{"addr1", "addr2", "addr1", "addr3", "addr2"}
unique := uniqueAddresses(addresses)
fmt.Println(unique) // Output: [addr1 addr2 addr3]
}
Здесь map[string]struct{} используется для эффективного хранения уникальных ключей без дополнительного потребления памяти на значение. Итоговый срез содержит только уникальные адреса, что позволяет вызывать их один раз.