Sobes.tech
Back to questions
Middle+
6

Live coding: дедупликация адресов — как обработать список с дублями, чтобы вызывать уникальные адреса. Решение через map.

Companies where asked
Веро Трейс

Answer from AI

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{} используется для эффективного хранения уникальных ключей без дополнительного потребления памяти на значение. Итоговый срез содержит только уникальные адреса, что позволяет вызывать их один раз.