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
,如果可以,取决于其余的代码。
- 2 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消