Прочитав раздел 7.8 «Языка программирования Go», я обнаружил следующий код:
var err error = syscall.Errno(2)
fmt.Println(err.Error()) // "no such file or directory"
fmt.Println(err) // "no such file or directory"
Я понимаю первую и вторую строку.error
интерфейс защищен syscall.Errno
, поэтому доступна функция Error()
, возвращающая string
.
Я не понимаю третью.Просматривая источники syscall
Я не могу найти место, где syscall.Errno
удовлетворяет stringer
interface - String()
функция не определена.
Почему третий печатает строкупредставление sysscall.Errno
?