Go的custom import path
什麼是 custom import path?就是package
後面的註釋,註釋的內容是// import xxxx
。這就是傳說中的 custom import path。
例如Docker
中的ofollow,noindex" target="_blank">程式碼
:
package daemon // import "github.com/docker/docker/daemon" import ( swarmtypes "github.com/docker/docker/api/types/swarm" "github.com/sirupsen/logrus" ) // SetContainerConfigReferences sets the container config references needed func (daemon *Daemon) SetContainerConfigReferences(name string, refs []*swarmtypes.ConfigReference) error { if !configsSupported() && len(refs) > 0 { logrus.Warn("configs are not supported on this platform") return nil } c, err := daemon.GetContainer(name) if err != nil { return err } c.ConfigReferences = append(c.ConfigReferences, refs...) return nil }
第一行,就是 custom import path。因為目前github.com/docker/docker
已經重新命名為了github.com/moby/moby
。所以如果
想愉快的補全程式碼或者是用IDE分析程式碼,正確的做法是,拷貝程式碼到本地,然後把moby/moby
的路徑改成docker/docker
。
custom import path的出現就是為了防止倉庫名發生改變之後,無法匯入,然後制定的一種方案。好了,到了吐槽時間,這確實是屬於 Go的設計不合理的地方之一。