Ошибки как интерфейс
Условие задачи
В функции foo(i int) error создаётся ошибка типа *MyError и возвращается как error. Однако при проверке в main() сообщение из Error() не выводится, хотя err != nil. Исправить программу так, чтобы Error() корректно возвращал сообщение об ошибке и оно отображалось.
gopackage main
import "fmt"
type MyError struct {
data string
}
func (e *MyError) Error() string {
return e.data
}
func main() {
err := foo(6)
if err != nil {
fmt.Println("oops:", err)
} else {
fmt.Println("ok")
}
}
func foo(i int) error {
var err error
if i > 5 {
err = &MyError{data: "i > 5"}
}
return err
}