package main
import “fmt”
func main() {
n, err := echo(10)
if err != nil {
fmt.Println("error: " + err.Error())
} else {
fmt.Println(n)
}
}
func echo(param int) (int, error) {
return param, nil
}
我们也可以使用自定义的 error
类型,比如调用标准库的 os.Stat
方法,返回的错误就是自定义类型:
type PathError struct {
Op string
Path string
Err error
}
func (e *PathError) Error() string {
return e.Op + " " + e.Path + ": " + e.Err.Error()
}
暂时看不懂也没有关系,等学会了接口之后,再回过头来看这段代码,应该就豁然开朗了。
defer
延迟函数调用,defer
后边会接一个函数,但该函数不会立刻被执行,而是等到包含它的程序返回时(包含它的函数执行了 return
语句、运行到函数结尾自动返回、对应的