Go Packages: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 2: Line 2:
* [[Go_Language_Modularization#Packages|Go Modularization]]
* [[Go_Language_Modularization#Packages|Go Modularization]]
=Overview=
=Overview=
A Go package is a collection of [[Go_Language#Variables|variables]], [[Go_Functions|functions]] and [[Go_Language#Type|type]] definitions, such as [[Go_Structs#Overview|structs]], and [[Go_Interfaces#Override|interfaces]].  
Go [[Go_Language_Modularization#Overview|modularization]] is build upon the concept of package.  


Go [[Go_Language_Modularization#Overview|modularization]] is build upon the concept of package. [[Go_Packages#Overview|Packages]] provide a [[Go_Packages#Packages_as_Namespaces|namespace]] for their names, and also the mechanisms to [[Go_Packages#Packages_as_Encapsulation_Mechanism|encapsulate]] code, hide implementation details and only expose features, such as [[Go_Language#Variables|variables]], [[Go_Language#Type|types]] or [[Go_Functions|functions]] that are meant to be publicly consumed.
A Go package is a collection of [[Go_Language#Variables|variables]], [[Go_Functions|functions]] and [[Go_Language#Type|type]] definitions, such as [[Go_Structs#Overview|structs]], and [[Go_Interfaces#Override|interfaces]]. Packages provide a [[Go_Packages#Packages_as_Namespaces|namespace]] for their names, and also the mechanisms to [[Go_Packages#Packages_as_Encapsulation_Mechanism|encapsulate]] code, hide implementation details and only expose features, such as [[Go_Language#Variables|variables]], [[Go_Language#Type|types]] or [[Go_Functions|functions]] that are meant to be publicly consumed.


Package are declared by writing multiple code files annotated with the same <code>[[Go_Language#package_keyword|package]]</code> name, and are consumed in other packages by importing them with the <code>[[Go_Language#import_keyword|import]]</code> keyword.
Package are declared by writing multiple code files annotated with the same <code>[[Go_Language#package_keyword|package]]</code> name, and are consumed in other packages by importing them with the <code>[[Go_Language#import_keyword|import]]</code> keyword.

Revision as of 00:09, 7 September 2023

Internal

Overview

Go modularization is build upon the concept of package.

A Go package is a collection of variables, functions and type definitions, such as structs, and interfaces. Packages provide a namespace for their names, and also the mechanisms to encapsulate code, hide implementation details and only expose features, such as variables, types or functions that are meant to be publicly consumed.

Package are declared by writing multiple code files annotated with the same package name, and are consumed in other packages by importing them with the import keyword.

Packages as Namespaces

Packages as Encapsulation Mechanism

Declaring Packages

Consuming Packages