• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go-errisshadowedduringreturn

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

where?

  Go程序函数中在通过 return关键字返回的时候,报错

why?

  变量作用域的问题,在子作用域定义一个上层作用域的同名的变量

package main

import (
	"errors"
	"log"
)

func main() {
	Count(10)
}

func Count(num int) (err error) {
	// 函数中定义了一个 err变量
	if num <= 0 {
		// if分支中又重新定义了一个err变量
		err := errors.New("num数不合法")
		log.Fatalln(err)
		// 直接返回,并没有返回参数,在子作用域中,并不能直接返回上一层定义作用域中返回变量
		// 也就是说命名参数返回,只能返回同一级别作用域下参数,不是同一级别作用域参数需要指明返回参数值
		return
		// 正确返回
		//return err
	}
	// 同一级别命名参数作用域,可以直接返回
	return
}

  

way?

  同一级别作用域命名参数可以直接通过 return返回,不需要接参数,而不是同一级别作用域返回的时候,函数要求返回的参数跟在return后面

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Go]CORS支持多个origin访问的思路(Access-Control-Allow-Origin部分)发布时间:2022-07-10
下一篇:
Golang学习笔记 3.第一个go程序发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap