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

如何在Go中检查功能参数

如何在Go中检查功能参数

Go
侃侃尔雅 2021-05-13 10:33:11
Guava前提条件允许轻松检查Java中的方法参数。public void doUsefulThings(Something s, int x, int position) {    checkNotNull(s);    checkArgument(x >= 0, "Argument was %s but expected nonnegative", x);    checkElementIndex(position, someList.size());    // ...}如果不满足条件,这些检查方法将引发异常。Go没有例外,但指示返回值有错误。因此,我想知道上面代码的惯用Go版本会是什么样子。
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

我不确定使用断言来检查参数的基本属性是否符合该语言的哲学。

如果某个参数实际上可能具有无效值且没有错误(例如,您在数据库中找不到该参数),则将返回错误:

func doUsefulThings(s *Something) error {      
// return an error if your algorithm detect an invalid value

声称s是不是nil只会增加详细程度。验证没有提供您没有任何意义nil

添加返回参数,尤其是error强制所有用户检查此错误。不要在函数中编写代码来防御调用者代码中的小错误。调用者应该在调用函数之前简单地测试not nil如果可以,取决于其余的代码


查看完整回答
反对 回复 2021-05-17
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信