Home > Backend Development > Golang > Can Go Packages Span Multiple Directories Without Complicated Imports?

Can Go Packages Span Multiple Directories Without Complicated Imports?

Mary-Kate Olsen
Release: 2024-12-30 17:12:10
Original
304 people have browsed it

Can Go Packages Span Multiple Directories Without Complicated Imports?

Organizing a Go Package into Multiple Directories

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:

  • Use file names to mimic the folder structure: For example, instead of using "foo1.go" and "bar1.go", use "foo-foo1.go" and "foo-bar1.go".
  • Consider splitting into multiple packages: If your package is too large, consider breaking it into smaller packages for better organization.

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template