---
author: Alvie Rahman
date: \today
title: Go (golang)
tags:
- golang
- programming
uuid: 70d24c2e-25f6-4a46-9756-659d13b5149f
---

# 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.

# `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 <http://localhost:6060> 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 --- <https://blog.golang.org/godoc>
[^go-mod-edit]: <https://golang.org/ref/mod#go-mod-edit>