依賴是圍棋的一個問題,但是這是新的東西:直接依賴於庫B
和C
依賴三角
B
- 應用
A
直接取決於庫C
如果我們在應用代碼A
中有這樣的事情:
funcyInstance := &C.FuncyObject{}
B.CleverFunction(funcyInstance)
當LIB B
:
func CleverFunction(arg *C.FuncyObject) {}
它提出了一個錯誤:
cannot use funcyInstance (type "*A/vendor/github.com/C".FuncyObject) as type "*B/vendor/github.com/C".FuncyObject in argument to B.CleverFunction
我使用滑翔作爲一個依賴管理。
我知道這種依賴關係的配置會導致存在幾種類型而不是單個類型(對於所有庫),並且可能它只是Go的反模式。無論如何...如何解決這個問題?
你不應該嵌套供應商目錄。它看起來像'glide'有一個'--strip-vendor'選項,而不是因爲某些原因默認。 – JimB