Тип PathError
найден в библиотеке os
Голанга:
type PathError struct {
Op string
Path string
Err error
}
func (e *PathError) Error() string { return e.Op + " " + e.Path + ": " + e.Err.Error() }
почти выполняет интерфейс Го error
:
type error interface {
Error() string
}
Однако, при попытке передать это как ошибку, вы получаете следующую ошибку времени компиляции:
cannot use (type os.PathError) as type error in argument...
os.PathError does not implement error (Error method has pointer receiver)
Зачем os.PathError
использовать приемник указателя для метода Error и просто избегать соответствия требованиям интерфейса ошибки?
Полный пример:
package main
import (
"fmt"
"os"
)
func main() {
e := os.PathError{Path: "/"}
printError(e)
}
func printError(e error) {
fmt.Println(e)
}