Golang anatomy: Difference between revisions
From wikinotes
(→Tools) |
(→Tools) |
||
Line 69: | Line 69: | ||
<blockquote> | <blockquote> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# | # project management | ||
go mod init foo.net/x/my-project | go mod init foo.net/x/my-project # create new project | ||
$GOPRIVATE # glob-matches projects not published to public registry | |||
# requirements | |||
go get example.com/module@latest # add/update requirement (latest) | |||
go get example.com/module v1.1.1 # add/update/downgrade to target version | |||
# package management | |||
# documentation | # documentation |
Revision as of 21:44, 11 December 2022
This page is a general getting started in go.
Project Structure
myproject/ go.mod # module name, requirements main.go # 'main' package's 'main()' function is optional CLI entrypoint printer.go # other 'main' package src are in toplevel dir internal/ # exported symbols from internal packages are only exposed within 'myproject' logger/ # subpackage logger.go math/ # subpackage division.go multiplication.gomyproject/go.mod
// myproject/go.mod module example.com/x/myproject go 1.18myproject/main.go
// myproject/main.go package main import ( "fmt" "example.com/x/myproject/internal/logger" ) func main() { logger.Info.Println("a log statement") fmt.Println("hello world") }myproject/internal/logger/logger.go
// myproject/internal/logger/logger.go package logger var Info *log.Logger func init() { Info = log.New(io.Stderr, "INFO: ", log.Ldate|log.Ltime|log.Llongfile) }
Tools
# project management go mod init foo.net/x/my-project # create new project $GOPRIVATE # glob-matches projects not published to public registry # requirements go get example.com/module@latest # add/update requirement (latest) go get example.com/module v1.1.1 # add/update/downgrade to target version # package management # documentation go doc io # functions/constants on 'io' go doc io.File # methods on 'io.File' # build/run main package go run . # test # build management go build go clean go install