Tôi cố gắng hiểu cách sắp xếp mã đi bằng gói "nội bộ". Hãy để tôi chỉ ra cấu trúc mà tôi có:Cách sử dụng các gói "nội bộ"?
project/
internal/
foo/
foo.go # package foo
bar/
bar.go # package bar
main.go
# here is the code from main.go
package main
import (
"project/internal/foo"
"project/internal/bar"
)
project/
nằm ngoài cây GOPATH. Bất cứ con đường nào tôi cố gắng nhập từ main.go
không có tác dụng, trường hợp duy nhất hoạt động tốt là import "./internal/foo|bar"
. Tôi nghĩ rằng tôi làm một cái gì đó sai hoặc có được "nội bộ" ý tưởng gói sai nói chung. Ai có thể làm mọi thứ rõ ràng hơn được không?
CẬP NHẬT
Ví dụ trên là đúng sự chỉ là những gì tôi cần là để đặt project/
thư mục dưới $GOPATH/src
. Vì vậy, điều là con đường nhập khẩu như project/internal/foo|bar
là hoàn toàn khả thi nếu chúng ta chỉ nhập nó từ project/
subtree chứ không phải từ bên ngoài.
Bạn không thể import các gói mà không phải là trong '$ GOPATH/src'. Thử tạo gói 'project/baz', bạn cũng không thể nhập gói đó. Đặt tất cả các dự án của bạn vào GOPATH. –
Nếu tôi không muốn đặt mọi dự án theo GOPATH thì sao? –
Đó là cách công cụ hoạt động. Nếu bạn muốn sử dụng một gói, nó cần phải được theo GOPATH. – JimB