Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Поведение сравнения error с nil при возврате нулевого указателя
Условие задачи
Нужно исследовать, как работает функция, возвращающая значение типа error, и какие строки появятся в выводе при проверке результата на nil. Особое внимание следует уделить тому, что интерфейс error может хранить нулевой указатель конкретного типа (например, *os.PathError), что меняет результат сравнения с nil.
func someFunc(shouldReturnErr bool) error {
var err *os.PathError = nil
if shouldReturnErr {
return errors.New("time to throw error")
}
return err
}
func main() {
errTrue := someFunc(true)
fmt.Println(errTrue)
fmt.Println(errTrue == nil)
fmt.Println()
errFalse := someFunc(false)
fmt.Println(errFalse)
fmt.Println(errFalse == nil)
}
Проанализируйте, какие значения будет выводить программа в обоих случаях и почему сравнение с nil даёт ожидаемый или неожиданный результат.