Skip to main content

指令

Go module 指令

Init and create go.mod file

go mod init github.com/xiaokatech/go-lab

运行代码

go run # 适合于小的片段代码
go help run

go build # build 二进制文件,更接近真实使用场景
go build && ./go-lab

Add dependencies

go get github.com/wagslane/go-tinytime
go mod vendor # 创建依赖清单副本, 获得依赖包的本地文件副本

Clean and fix packages

go mod tidy

Compiles and installs the program locally

go install

常用指令

  1. go build

    • 用途:编译 Go 程序。
    • 示例go build main.go - 编译名为main.go的文件。
  2. go run

    • 用途:编译并运行 Go 程序。
    • 示例go run main.go - 编译并运行main.go
  3. go test

    • 用途:运行 Go 程序中的测试。
    • 示例go test - 在当前目录下运行所有测试。
  4. go get

    • 用途:下载并安装包及其依赖。
    • 示例go get github.com/gorilla/mux - 安装gorilla/mux包。
  5. go mod init

    • 用途:初始化一个新的模块,创建go.mod文件。
    • 示例go mod init mymodule - 创建一个新模块名为mymodule
  6. go mod tidy

    • 用途:添加缺少的模块和移除不用的模块。
    • 示例go mod tidy - 清理模块。
  7. go fmt

    • 用途:格式化 Go 源代码。
    • 示例go fmt ./... - 格式化当前目录及其子目录中的所有 Go 文件。
  8. go vet

    • 用途:检查 Go 源代码中的常见错误。
    • 示例go vet ./... - 在当前目录及其子目录中检查代码。
  9. go doc

    • 用途:显示包或符号的文档。
    • 示例go doc fmt - 显示fmt包的文档。
  10. go env

    • 用途:打印 Go 环境信息。
    • 示例go env - 打印当前 Go 环境的信息。

Questions

  • Doesn go run build a production executable?
    • non
  • Which can go run accept as arguments?
    • Both (packge names and file names)
  • What was created after runing go build?
    • A executable file name "go module name"
  • What does go install do?
    • Compiles and installs the program locally
  • Code must be compiled with go build before running go install
    • False
  • What was the output from go build in the library package
    • The compiled package is silently saved to the local build cache
  • Why is the function Reverse() instead of reverse()?
    • Lowercase names aren't exported for external use
  • Does a packge in a folder named dateparser need to also be called dateparser
    • No, but it should by convention