В чем разница между path.Match и filepath.Match? - PullRequest
0 голосов
/ 01 июня 2018

Документация и код для обоих одинаковы.Почему две повторяющиеся функции?

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

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

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Они не являются «дубликатами», они являются частью разных пакетов, поэтому вы должны изучить и интерпретировать их в контексте их пакетов.

Пакет path "реализует служебные подпрограммы для манипулирования разделенными косой чертой " независимыми платформы / операционной системы.

Пакет 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
0 голосов
/ 01 июня 2018

Блок в пакете filepath зависит от операционной системы, а пакет в path всегда использует косую черту (/) в качестве разделителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...