В файле go.mod я написал:
module github.com/Siiir/vector
go 1.17
require github.com/huandu/go-clone v1.3.2 // indirect
replace clone => github.com/huandu/go-clone[v1.3.2]
Пишет, что я не могу сделать такую замену.
Я действительно решил свою проблему с именем импортированного пакета.
Это удобно и работает без этой черточки. Я обнаружил, что могу использовать clone.something
для ссылки на функцию.
Не нужно печатать go-clone.something
.
В любом случае, предположим, что имя пакета действительно сумасшедшее или неудобное. Как я могу заменить его?
go: -replace=clone=github: unversioned new path must be local directory
replacement module without version must be directory path (rooted or starting with ./ or ../)
Anyway, assume that a package name is indeed crazy or inconvenient. How can I replace it?
Вы не можете.
И вы не должны. Путь импорта — это то, что вы пишете только один раз в объявлении import
, а имя пакета можно изменить на уровне файла с помощью import nicename "something.you.think/is-totally/inconvenient/and/unacceptable-to/your_taste"
.
Спасибо, псевдоним на уровне файла был чем-то, что я глубоко забыл.