我有一些全局定义的错误类型变量。例如,
var ErrFileNotExist = errors.New("File does not exist")
在服务器端,它用作RPC中的返回值,例如
func (t *Type) F(args *T1, reply *T2) error {
...
// some code here.
return ErrFileNotExist
}
但是在客户端调用此RPC并获取返回值,将其与全局ErrFileNotExist
进行比较,它不匹配。也就是说,
...
// client set up
e := c.Call(...)
log.Prinln(e) // File does not exist
log.Println(e == ErrFileNotExist) // false
为什么会这样?有没有解决方法?