error 类型
<font style="color:rgb(53, 53, 53);">error</font>
类型其实是一个接口类型,也是一个 <font style="color:rgb(53, 53, 53);">Go</font>
语言的内建类型。在这个接口类型的声明中只包含了一个方法Error。这个方法不接受任何参数,但是会返回一个string类型的结果。
package main
import (
"errors"
"fmt"
)
func echo(request string) (response string, err error) {
if request == "" {
err = errors.New("empty request")
//结果response的值也会是一个空字符串
return
}
response = fmt.Sprintf("echo: %s", request)
//此时的结果err的值会是nil
return
}
func main() {
for _, req := range []string{"", "hello!"} {
fmt.Printf("request: %s\n", req)
resp, err := echo(req)
if err != nil {
fmt.Printf("error: %s\n", err)
continue
}
fmt.Printf("response: %s\n", resp)
}
}
这里和之前java里面不太一样
err = xxx
return
感觉等价于下面的写法,只不过下面的res为nil
err =xxx
return res, err