Skip to content

20210511关于warp的一些兼容性问题

zqy edited this page May 11, 2021 · 1 revision

有一些是旧版本的设定,比如: internal/poll.ErrNetClosing 他是个实体:

var ErrNetClosing = errors.New("use of closed network connection")
var ErrFileClosing = errors.New("use of closed file")
var ErrNoDeadline = errors.New("file type does not support deadline")

同样的io.EOF也是这种情况:

var EOF = errors.New("EOF")

这些其实在应用warp流的套路时,这些就变成了需要去“兼容”的旧情况
相对而言的新情况就是诸如os.PathError:

type PathError struct {
Op   string
Path string
Err  error
}

这样的“只进行了声明的结构类”其实才是与warp真正适配的模式

而对于就方法的解决方法如下:

if err == os.ErrExist
(if err ==os.EOF)

这么做确实能基于“字面值”判断两个err是否是同一个,但是并不能体现出逻辑关系,总之对于最终的逻辑这些都需要考虑到

Clone this wiki locally