error 类型
<font style="color:rgb(53, 53, 53);">error</font>类型其实是一个接口类型,也是一个 <font style="color:rgb(53, 53, 53);">Go</font> 语言的内建类型。在这个接口类型的声明中只包含了一个方法Error。这个方法不接受任何参数,但是会返回一个string类型的结果。
package mainimport ("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的值会是nilreturn}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 = xxxreturn
感觉等价于下面的写法,只不过下面的res为nil
err =xxxreturn res, err
