--- author: Alvie Rahman date: \today title: Go (golang) tags: [ golang, programming ] --- # Getting Up to Speed With Go Probably the most useful resoure I found was the [Tour of Go](https://tour.golang.org/). It's easy to understand and teaches you all you need to know. # Making a web api > We need to memorize the `Handler` interface. > > type Handler interface { > ServerHTTP(ResponseWriter, *Request) > } # `godoc` [^golang-godoc] > Godoc parses Go source code - including comments - and produces documentation as HTML or plain > text. > The end result is documentation tightly coupled with the code it documents. > For example, through godoc's web interface [which is at by default] you can > navigate from a function's documentation to its implementation with one click. ## Installing godoc // `command not found: godoc` ```bash go get golang.org/x/tools/cmd/godoc ``` # `go.mod` ## `replace` [^go-mod-edit] ``` go mod edit -replace old.repo/location=../new/location ``` or ``` echo "old.repo/location => ../new/location" >> go.mod ``` > The `-replace=old[@v]=new[@v]` flag adds a replacement of the given > module path and version pair. If the @v in old@v is omitted, a > replacement without a version on the left side is added, which applies > to all versions of the old module path. If the @v in new@v is omitted, > the new path should be a local module root directory, not a module > path. Note that -replace overrides any redundant replacements for old[@v], > so omitting @v will drop existing replacements for specific versions [^golang-godoc]: Andrew Gerrand, 31 March 2011 --- [^go-mod-edit]: