2017-08-29 6 views
0

Goでコレクションパッケージを作成しようとしていますが、インポートパスに問題があります。インポートパッケージのパスの問題

私はJava Collectionsインターフェイスをモデリングしています。ここに私のファイル構造は

+/$GOPATH 
    /bin 
    /pkg 
    /src 
     /github.com 
      /user 
       /collections 
        collections.go 
        main.go 
        /collections 
         /bstAvl 
         bstAvl.go 

である私のcollections.goファイルは次のようになります。

私は必要なのインポートするにはどうすればよい Collections.go

Collectionインタフェースを使用しようとしていますbstAvl.go

package collections 

type Collection interface { 
    Add(interface{}) (bool, error) 
    AddAll(Collection) (bool, error) 
    Clear() 
    Contains(interface{}) (bool, error) 
    Remove(interface{}) (bool, error) 
    Size() uint 
} 

Collectionインターフェイスにアクセスするには?

私は道に迷ってしまったと思うかもしれませんが、おそらくそれはもっと複雑になりました。もっとシンプルな構造をお勧めしますか?

理想的には、すべてのコレクションをcollectionsパッケージの下に置いてライブラリとしてエクスポートし、必要に応じて他のアプリケーションで使用できるようにすることが理想的です。

P.S私はStructuring applications in Go by Ben Johnsonを読みました。しかし、私はまだ混乱しています。どんな助けでも大歓迎です。

EDIT: 私はパッケージ構造をオーバーしたと思います。 Iこれに固執することを決めた:完全なパスを使用し、bstAvl.go内collectionsをインポートするには

+/$GOPATH 
    /bin 
    /pkg 
    /src 
     /github.com 
      /user 
       /collections 
        collections.go 
        main.go 
        bstAvl.go 

答えて

2

import "github.com/user/collections" 

それが構造化するために来るとき、それはすべてのパッケージの種類に依存し、私はこの特定のケースで助言を与えるのに十分なJavaコレクションを知らない。

+/$GOPATH 
    /bin 
    /pkg 
    /src 
     /github.com 
      /user 
       /collections 
        collections.go 
        main.go 
        /bstAvl 
         bstAvl.go 

しかし、繰り返しコレクション/コレクションを避けるために、私が直接初期コレクション -folder下bstAvlフォルダを配置することをお勧め