java - 如何在 Go 中检查函数参数

标签 java validation go guava preconditions

Guava Preconditions允许轻松检查 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 版本会是什么样子。

最佳答案

这取决于上下文。

如果 doUsefulThings 是从包中导出的公共(public)函数,则返回一个错误。您可以导出可以返回的包级 error 变量,调用者可以检查返回的 error 是否等于已记录的搞砸方法之一。

如果它没有被导出,并且错误地调用它会是程序员的错误,我认为 panic(errors.New("bla bla bla")) 是合理的。尽管一旦您取消引用该指针,该函数就会崩溃,无论如何。

为此:checkArgument(x >= 0, "Argument was %s but expected nonnegative", x) 你可以传入 uint

关于java - 如何在 Go 中检查函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568266/

相关文章:

php - 带有条件消息的 Laravel 自定义表单验证

mongodb - 我认为我的 Go 服务器正在杀死我的 Mongo 服务器

go - 如何在更改位置时更新导入

go - 如何解析QueryString

java - Hadoop 作业挂起等待被杀死

java - 时间轴不适用于 'some' 持续时间

java - Android 数学计算未给出预期值

java - CDI 我是否需要具有默认构造函数的对象的生产者?

jquery - ASP.NET MVC 远程验证钩子(Hook)方法

javascript - jQuery 根据选择选项显示/隐藏 div