O que realmente faz `go build`? Entendendo `go build` vs `go install`
Olá a todos! Comecei a estudar Go recentemente e estou tentando entender como compilar projetos corretamente. Li vários artigos, mas ainda me confundo com os comandos `go build` e `go install`.
Tenho um projeto simples com um pacote main na raiz. Quando executo `go build` na pasta do projeto, ele cria um binário ali mesmo (estou usando Go 1.20 no Windows). Mas se eu executo `go install`, não vejo nenhum binário na pasta do projeto, porém em `%GOPATH%/bin` aparece meu arquivo executável.
Qual é a diferença aqui? Para que preciso de `go install`, se `go build` já cria o binário? Ouvi dizer que `go build` também verifica dependências de alguma forma, e `go install` as instala? Ou não é assim?
Meu código de exemplo:
```go
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
```
Eu executo `go buil