Golang packages: Difference between revisions
From wikinotes
No edit summary |
|||
Line 10: | Line 10: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Imports --> | </blockquote><!-- Imports --> | ||
= Defining Packages = | |||
<blockquote> | |||
<syntaxhighlight lang="bash"> | |||
# project heirarchy | |||
myproject/ | |||
mypackage/ | |||
libfoo.go | |||
libbar.go | |||
main.go | |||
go.mod | |||
</syntaxhighlight> | |||
{{ expand | |||
| <code>myproject/go.mod</code> | |||
| | |||
<syntaxhighlight lang="go"> | |||
// go.mod | |||
module github.com/you/myproject | |||
go 1.18 | |||
</syntaxhighlight> | |||
}} | |||
{{ expand | |||
| <code>myproject/main.go</code> | |||
| | |||
<syntaxhighlight lang="go"> | |||
// main.go | |||
package main | |||
import "github.com/you/myproject/mypackage" | |||
func main() { | |||
mypackage.PrintHi(); | |||
} | |||
</syntaxhighlight> | |||
}} | |||
{{ expand | |||
| <code>myproject/mypackage/libfoo.go</code> | |||
| | |||
<syntaxhighlight lang="go"> | |||
// mypackage/libfoo.go | |||
package mypackage | |||
import "fmt" | |||
func PrintHi() { | |||
fmt.Println("hi") | |||
} | |||
</syntaxhighlight> | |||
}} | |||
</blockquote><!-- Defining Packages --> |
Revision as of 19:56, 23 May 2022
Imports
import "fmt" import ( "fmt" // builtin pkgs have no module-path prefix "golang.org/x/example/stringutil" // third-party pkgs have module-path prefix )
Defining Packages
# 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") }