Как я могу отследить несоответствие возврата функции в Golang? В двух разных средах сборки я вижу разницу. В обоих случаях Visual Studio Code должен быть удален в поле Linux, используя Go 1.12 в режиме модуля. В сломанном случае я веду сборку, используя изображение Golang: 1.12 Docker. Ниже упрощенно показано, где я вижу проблему.
Итак, для этого примера, полученного из https://github.com/satori/go.uuid:
package main
import (
"fmt"
uuid "github.com/satori/go.uuid"
)
func main() {
// or error handling
u2, err := uuid.NewV4()
if err != nil {
fmt.Printf("Something went wrong: %s", err)
return
}
fmt.Printf("UUIDv4: %s\n", u2)
}
Неожиданная ошибка сборки:
./main.go:11:5 assignment mismatch: 2 variables but uuid.NewV4() returns 1 values
В среде, где я сталкиваюсь с этой проблемой, в коде Visual Studio при наведении указателя мыши на вызов uuid.NewV4 () я вижу:
func uuid.NewV4() (uuid.UUID, error)
uuid.NewV4 on pkg.go.dev
NewV4 returns random generated UUID.
и указатель мыши over uuid показывает:
package uuid ("github.com/satori/go.uuid")
uuid on pkg.go.dev
Я могу переключиться на другой пакет uuid, чтобы обойти это, но я хочу лучше понять, как это выяснить.