Junior — Senior
Comparison of returned errors with nil
livecode
Task condition
Explore how functions returning different error types compare to nil, and predict what values will be printed to the console.
package main
import (
"fmt"
)
type MyErr struct{}
func (me MyErr) Error() string {
return "my err string"
}
func main() {
fmt.Println(returnError() == nil)
fmt.Println(returnErrorPtr() == nil)
fmt.Println(returnCustomError() == nil)
fmt.Println(returnCustomErrorPtr() == nil)
fmt.Println(returnMyError() == nil)
}
func returnError() error {
var err error
return err
}
func returnErrorPtr() *error {
var err *error
return err
}
func returnCustomError() error {
var customErr MyErr
return customErr
}
func returnCustomErrorPtr() error {
var customErr *MyErr
return customErr
}
func returnMyError() *MyErr {
return nil
}