Question:
Can you organize a Go package into multiple source directories without users having cumbersome imports?
Answer:
No, it is not explicitly supported in the Go language specification. The language spec states that a package may require all source files to reside in the same directory.
Consequences of Implementing Multiple Directories:
If you attempt to declare "package mypackage" in multiple directories, you will encounter compilation errors. This occurs because the language spec allows implementations to reject such structures.
Recommended Approach:
Instead of organizing into directories, It's recommended to use the following approach:
Internal Packages for Limited Scope (Go 1.5 and above):
In Go 1.5 and later, you can create internal packages within a package by using an "internal" subfolder. This allows you to organize source files into different folders while still maintaining a hierarchical structure within the package. However, external packages cannot import or use internal packages.
The above is the detailed content of Can Go Packages Span Multiple Directories Without Complicated Imports?. For more information, please follow other related articles on the PHP Chinese website!