为了账号安全,请及时绑定邮箱和手机立即绑定

返回结构或错误的惯用方法是什么?

返回结构或错误的惯用方法是什么?

Go
德玛西亚99 2021-06-03 17:58:45
我有一个函数,它返回Card一个struct类型,或者一个错误。问题是,发生错误时如何从函数返回?nil对结构无效,我的Card类型没有有效的零值。func canFail() (card Card, err error) {    // return nil, errors.New("Not yet implemented"); // Fails    return Card{Ace, Spades}, errors.New("not yet implemented"); // Works, but very ugly}我发现的唯一解决方法是使用 a*Card而不是 a Card, anil在出现错误时使其成为现实Card,或者在没有发生错误时使其指向实际,但这非常笨拙。func canFail() (card *Card, err error) {    return nil, errors.New("not yet implemented");}有没有更好的办法 ?编辑:我找到了另一种方式,但不知道这是否是惯用的甚至是好的风格。func canFail() (card Card, err error) {    return card, errors.New("not yet implemented")}由于card是一个命名的返回值,我可以在不初始化它的情况下使用它。它以自己的方式归零,我并不在乎,因为调用函数不应该使用这个值。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号