Sobes.tech
Back to questions
Senior
3

func main() { ctx := context.Background() urls := []string{ "vk.ru", "ozon.ru", "pi.zone.ru", "lamoda.ru", "adidas.com", } pingMap, err := collectRTT(ctx, urls) if err != nil { fmt.Println("ERR:", err) return } data, _ := json.Marshal(pingMap) fmt.Println("RTT:", string(data)) } func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { // ... (rest of the function implementation) }(url) } // ... (rest of the function implementation) } Ошибка: # command-line-arguments 2486763/main.go:34:9: undefined: sync 2486763/main.go:35:9: undefined: sync 2486763/main.go:45:32: undefined: fmt.Errorf

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Ошибка undefined: sync и undefined: fmt.Errorf возникает из-за отсутствия импортов необходимых пакетов в вашем Go-файле. В Go, чтобы использовать пакеты sync и fmt, их нужно явно импортировать.

Добавьте в начало файла следующий блок импорта:

import (
    "context"
    "encoding/json"
    "fmt"
    "sync"
    "time"
)

Без этого компилятор не сможет найти определения sync.Mutex, sync.WaitGroup и fmt.Errorf.

Также убедитесь, что используете правильные имена функций и переменных, и что весь код находится внутри пакета main или другого, если нужно.

Пример минимального импорта для вашего кода:

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "sync"
    "time"
)

func main() {
    // ваш код
}

// остальные функции

Это решит проблему с undefined.