gpt4 book ai didi

go - 从函数返回多个值

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:59 25 4
gpt4 key购买 nike

我有这个功能:

func GetBasicAuth(w http.ResponseWriter, r *http.Request) (string, error) {
secret, _, ok := r.BasicAuth()
if !ok {
return "", err //is this right?
}
return secret, nil
}

我不得不声明该函数将返回一个字符串和一个错误,但实际上它会返回一个或另一个。如果 BasicAuth 函数不是 ok 那么我没有要返回的字符串,那么我该怎么办 - 只发送一个空字符串?这看起来很奇怪!

最佳答案

除非另有说明(例如 io.Reader),Go 函数/方法返回 a, b, c, …, error 是正常的使用/检查。通常(但不是必需的)在返回错误时函数/方法使用任何 the zero value用于其他返回值。

如前所述,一些函数/方法,例如 io.ReaderRead(p []byte) (n int, err error) 明确说明其他行为:

Callers should always process the n > 0 bytes returned before considering the error err.

即使在(某些)错误的情况下,您创建的任何返回有用值的函数/方法都应该明确说明这一点。

关于go - 从函数返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com