Go 出现:err is shadowed during return(err在返回过程中被隐藏)

原因: 函数作用域问题

// 此代码为转载 代码 仅供参考
func foo(x string) (ret int, err error) {//返回值列表定义了ret和err变量,作用域是整个函数体 if true {//新的语句块 ret, err := strconv.Atoi(x) //这里又定义了新的变量ret和err,和返回值列表重名了。作用域是if语句块 if err != nil { return //这里的return语句会导致外层的ret和err被返回,而不是if语句里的ret和err } } return ret, nil }

转载:https://www.cnblogs.com/fanbi/p/10640589.html

邮箱: 1090055252@qq.com
原文地址:https://www.cnblogs.com/zhaoxianxin/p/14538272.html