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.