ss
А если вы хотите использовать ошибку, то вы должны определить тип, реализовать у него метод
Error() string
, чтоб он удовлетворял интерфейсу error
, и потом создать что-то этого типа. И вот это что-то нельзя вычислить на этапе компиляции. Реальное вычисление значений возможно только в рантайме, а значит это уже по определению переменная.Возможно, не совсем понятно объяснил, конечно, но в общих чертах как-то так.
1. неизвестное нечто
return errors.New("error"
2. ошибка как заданная переменная var ErrSomething = errors.New("something")
3. свои типы ошибок со стейтом
и вот 2. - можно использовать для этого константы. почему нет?