如何在Go中检查功能参数

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版本会是什么样子。


侃侃尔雅
浏览 211回答 2
2回答

烙印99

我不确定使用断言来检查参数的基本属性是否符合该语言的哲学。如果某个参数实际上可能具有无效值且没有错误(例如,您在数据库中找不到该参数),则将返回错误:func doUsefulThings(s *Something) error {       // return an error if your algorithm detect an invalid value声称s是不是nil只会增加详细程度。验证没有提供您没有任何意义nil。添加返回参数,尤其是error强制所有用户检查此错误。不要在函数中编写代码来防御调用者代码中的小错误。调用者应该在调用函数之前简单地测试not nil,如果可以,取决于其余的代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go