go - 全局定义的错误在 RPC 返回中不相等
问题描述
我有几个全局定义的错误类型变量。例如,
var ErrFileNotExist = errors.New("File does not exist")
在服务器端,这被用作 RPC 中的返回值,例如,
func (t *Type) F(args *T1, reply *T2) error {
...
// some code here.
return ErrFileNotExist
}
但是在客户端调用此 RPC 并获取返回值,将其与 global 进行比较ErrFileNotExist
,它不匹配。那是,
...
// client set up
e := c.Call(...)
log.Prinln(e) // File does not exist
log.Println(e == ErrFileNotExist) // false
为什么会发生这种情况?有什么解决方法吗?
解决方案
推荐阅读
- entity-framework - 如何正确使用 EFCore 和 SignalR Core(避免缓存实体)
- html - 在 Squarespace 如何更改横幅图像的位置
- javascript - 使用 Angular 的多选下拉菜单标签
- go - 检索后无法将数据插入数据库
- business-objects - 登录 Business Objects 5.x 版本的用户数
- python - 如何编写代码,以便在 django 模型中只选择一个单选按钮。?
- java - Java:使用干净的代码删除对象中不需要的字符
- wordpress - 在构建 WP 模板时用我自己的代码替换 ACF
- r - rmarkdown ggplot 不能正确显示汉字
- javascript - 通过 Javascript 动画变换比例