path.Match和filepath.Match有什么区别?

时间:2018-06-01 07:08:21

标签: go glob

两者的文档和代码看起来都一样。 为什么有两个重复的功能?

https://golang.org/pkg/path/#Match

https://golang.org/pkg/path/filepath/#Match

2 个答案:

答案 0 :(得分:3)

它们不是“重复”,它们是不同包的一部分,因此您应该在其包的 context 中检查和解释它们。

程序包path “实现了用于操作平台/操作系统的斜杠分离路径 独立的实用程序例程。 / p>

path/filepath “实现实用程序例程,以与目标操作系统定义的文件路径兼容的方式操作文件名路径

因此,例如path/filepath处理操作系统之间的路径分隔符差异。

如果您仔细查看filepath.Match()的文档,则结束于:

  

在Windows上,禁用转义功能。相反,'\'被视为路径分隔符。

还有术语解释差异。 path.Match()

term:
    '*'         matches any sequence of non-/ characters
    '?'         matches any single non-/ character

filepath.Match()

term:
    '*'         matches any sequence of non-Separator characters
    '?'         matches any single non-Separator character

答案 1 :(得分:1)

filepath包中的一个是依赖于操作系统的,path包中的一个总是使用斜杠(/)作为分隔符。

相关问题