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

 

posted @ 2021-03-15 16:17  Black_Climber  阅读(357)  评论(0编辑  收藏  举报