Golang packages: Difference between revisions
From wikinotes
Line 12: | Line 12: | ||
= Defining Packages = | = Defining Packages = | ||
<blockquote> | |||
== Anatomy == | |||
<blockquote> | <blockquote> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 66: | Line 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} | ||
</blockquote><!-- Anatomy --> | |||
== Exported Functions == | |||
<blockquote> | |||
{{ TODO | | |||
Needs much more detail | |||
}} | |||
Exported functions are upper-cased. | |||
</blockquote><!-- Exported Functions --> | |||
</blockquote><!-- Defining Packages --> | </blockquote><!-- Defining Packages --> |
Revision as of 20:01, 23 May 2022
Imports
import "fmt" import ( "fmt" // builtin pkgs have no module-path prefix "golang.org/x/example/stringutil" // non-builtin pkgs have module-path prefix (incl. local sub-packages) )
Defining Packages
Anatomy
# project heirarchy myproject/ mypackage/ libfoo.go libbar.go main.go go.mod
myproject/go.mod
// go.mod module github.com/you/myproject go 1.18
myproject/main.go
// main.go package main import "github.com/you/myproject/mypackage" func main() { mypackage.PrintHi(); }
myproject/mypackage/libfoo.go
// mypackage/libfoo.go package mypackage import "fmt" func PrintHi() { fmt.Println("hi") }Exported Functions
TODO:
Needs much more detail
Exported functions are upper-cased.