Это выражение выглядит странновато, но оно полностью корректно:
error.Error(errors.ErrUnsupported)
errors.ErrUnsupported — реальная, хотя и не слишком известная ошибка в пакете errors:
var ErrUnsupported = New("unsupported operation")
error — реальное название интерфейсного типа, а Error — метод на этом интерфейсе:
type error interface {
Error() string
}
Метод любого типа можно вызвать как обычную функцию, так что эти два вызова эквивалентны:
var err = errors.New("oops")
err.Error() // "oops"
error.Error(err) // "oops"
В результате получается так:
s := error.Error(errors.ErrUnsupported)
println(s)
// unsupported operation
🤓