Go Language Modularization: Difference between revisions
Line 45: | Line 45: | ||
===<tt>import</tt> Keyword=== | ===<tt>import</tt> Keyword=== | ||
The <code>import</code> is a [[Go_Language#import_keyword|keyword]] use to access other packages. | The <code>import</code> is a [[Go_Language#import_keyword|keyword]] use to access other packages. | ||
==Standard Library== | |||
Go comes with a set of "built-in" packages, which come with the Go development enviornment. | |||
=<span id='Dependency'></span>Dependencies= | =<span id='Dependency'></span>Dependencies= |
Revision as of 01:11, 15 August 2023
External
Internal
Overview
A standard organization of the files that are part of a project makes easier to share code with other people who also use the same standard. Go workspaces encourage such a standard.
Overview
Workspaces
The standard workspace layout is:
. ├─ src ├─ pkg └─ bin
This layout is recommended, but not enforced.
A workspace may contain multiple projects.
Define the relationship between workspace and the GOPATH
variable.
Project
Packages
A package is a group of related source files. A package can be imported by other packages. Always, there must be one package called main
, which produces an executable as result of its compilation. Other packages do not produce executables as result of their compilation.
Must the package live in a directory with the same name?
Deplete, merge into this document and delete: Go Concepts - Packages
Declaring Packages
The main Package
The main
package produces an executable as result of its compilation. The main
package must have a function called main()
, which is where the code execution starts.
package main
import "fmt"
func main() {
fmt.Printf("hello\n")
}
Importing Packages
import Keyword
The import
is a keyword use to access other packages.
Standard Library
Go comes with a set of "built-in" packages, which come with the Go development enviornment.
Dependencies
Vendoring
"Vendoring" is the act of making a local copy of a third party package your project depends on. This copy is traditionally placed inside each project and then saved in the project repository.
TODO
Deplete, merge into this document and delete: